Я нахожусь в процессе написания теста для небольшого приложения, которое следует шаблону MVP.
Технически, я знаю, что должен был написать тест до написания кода, но мне нужно было быстро и эффективно запустить демонстрационное приложение, и теперь я возвращаюсь к тесту, прежде чем перейти к реальной разработке.
Короче говоря, я пытаюсь протестировать докладчика, однако я даже не могу запустить пустой тест из-за исключительной ситуации Internal.ExpectationException.
Исключение возникает при неожиданном вызове назначения события.
Вот класс ведущего,
public LBCPresenter(IView view, IModel model)
{
m_model = model;
m_model.BatteryModifiedEvent += new EventHandler(m_model_BatteryModifiedEvent);
}
Интерфейс модели
public interface IModel
{
event EventHandler BatteryModifiedEvent;
}
А вот тестовый класс, я не вижу, что мне не хватает, я сказал NMock ожидать события ...
[TestFixture]
public class MVP_PresenterTester
{
private Mockery mocks;
private IView _mockView;
private IViewObserver _Presenter;
private IModel _mockModel;
[SetUp]
public void SetUp()
{
mocks = new Mockery();
_mockView = mocks.NewMock<IView>();
_mockModel = mocks.NewMock<IModel>();
_Presenter = new LBCPresenter(_mockView, _mockModel);
}
[Test]
public void TestClosingFormWhenNotDirty()
{
Expect.Once.On(_mockModel).EventAdd("BatteryModifiedEvent", NMock2.Is.Anything);
//makes no difference if following line is commented out or not
//mocks.VerifyAllExpectationsHaveBeenMet();
}
}
Каждый раз, когда я запускаю тест, я получаю одно и то же исключение для ожидания.
Есть идеи?