Я видел много сообщений, объясняющих, как использовать NMock для ожидания исключения. Но это не то, что я хочу знать. В моем случае я тестирую счастливый путь. Но похоже, что NMock бросает исключения, пока метод, вызванный макетом, вызывается внутри try/catch. Поэтому предположим, у меня есть метод в классе я тестирование:с использованием NMock3 в C#, издевательство над версиями, даже если я не говорю, чтобы он кидал
class MyClass
{
public MyClass(some_type obj)
{
m_member = obj;
}
public void Func()
{
try
{
m_member.some_function()
}
catch (System.Exception e)
{
// do something
}
}
private some_type m_member;
}
В тесте на единицу для этого класса, у меня есть тест для этого Func в MyClass, чтобы проверить счастливый путь:
[Test]
public void TestFunc()
{
MockFactory mock_factory = new MockFactory();
Mock<some_type> mock = mock_facoty.CreateMock<some_type>();
MyClass uut = new MyClass();
mock.Expects.One.MethodWith(_ => _.some_function());
uut.Func();
mock_facoty.VerifyAllExpectationsHaveBeenMet();
mock_facoty.ClearExpectations();
}
Этот модульный тест продолжает работать. Если удалить TRY/поймать в коде и просто делать (строка 8 - 18):
public void Func()
{
//try
//{
m_member.some_function()
//}
//catch (System.Exception e)
//{
// // do something
//}
}
Этот тест будет работать нормально.
У кого-нибудь есть идея, почему это происходит? и как я мог сделать эту работу? Большое спасибо!
Пожалуйста, переформатировать код без номеров строк. –
Спасибо за напоминание. Я переформатировал его. – user1469452
Хорошо, все готово. Спасибо за вашу помощь. – user1469452