Marco, miembro de nuestro equipo, nos ha hecho el favor de redactar este artículo porque conoce perfectamente dicho tema.
Solución:
¿No necesitas pasar el argumento? La firma de tu evento es EventHandler
cual es(object sender, EventArgs e)
.
this.mockView.Raise(mock => mock.MyEvent += null, new EventArgs());
Nunca he usado la sobrecarga que has especificado aquí… aunque no parece correcta.
Ha declarado que UpdateView() acepta un stringpero su invocación de presentador no tiene un string argumento (o por defecto):
Invocación:
private void OnMyEvent(Object sender, EventArgs e)
this._view.UpdateView();
Declaración:
public void UpdateView(string test)
this.textBox.Text = test;
Verificación:
mockView.Verify(mock => mock.UpdateView(It.IsAny());
FWIW, creo que el evento en su opinión es un poco engorroso, un cambio simple sería:
public interface IView
void UpdateText(string test);
public class MyPresenter
private readonly IView _view;
public MyPresenter(IView view)
_view = view;
private void SelectItem(string item)
_view.UpdateText(item);
public partial class MyView : IView
private readonly MyPresenter _presenter;
public MyView()
_presenter = new MyPresenter(this);
combo.SelectedIndexChanged += OnSelectedIndexChanged;
public void UpdateText(string test)
textBox.Text = test;
private OnSelectedIndexChanged(Object sender, EventArgs e)
_presenter.SelectItem(combo.SelectedItem);
Entonces podría simplemente verificar la interacción con la vista sin tener que lidiar con un evento adicional:
presenter.SelectItem("Burrito!");
mockView.Verify(mock => mock.UpdateView("Burrito!");
Aquí puedes ver las comentarios y valoraciones de los lectores
Puedes añadir valor a nuestro contenido informacional colaborando tu veteranía en los comentarios.