以下のような構造になっています。 ViewLoaded
イベントが発生したときにLoadData
が呼び出されたかどうかをテストします。raiseイベントmoqのアクション
public interface ISetupView
{
event Action ViewLoaded;
}
public class BaseSetupController
{
private ISetupView view;
public BaseSetupController(ISetupView view)
{
this.view = view;
view.ViewLoaded +=() => { LoadData(); };
}
public virtual void LoadData()
{
}
}
現在、以下のようなテストがありますが、動作しません。 LoadData
は決して呼び出されません。
[TestFixture]
public class BaseSetupControllerTests
{
[Test]
public void ViewLoad_LoadDataIsCalled()
{
Mock<ISetupView> view = new Mock<ISetupView>();
Mock<BaseSetupController> controller = new Mock<BaseSetupController>(view.Object);
controller.Setup(x => x.LoadData());
view.Raise(x => x.ViewLoaded +=() => { });
controller.Verify(x=>x.LoadData(), Times.Once());
}
}