我已經看到很多文章解釋如何使用NMock來期望異常。但那不是我想知道的。就我而言,我正在測試快樂之路。但是看起來像NMock拋出異常,只要在模擬中調用的方法在try/catch中調用。 因此,假設我在類中的方法我測試:在c#中使用NMock3,即使當我不告訴它拋出時,模擬仍會拋出預期
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;
}
在這個類的單元測試,我對這個函數功能在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/catch中的代碼,只是做(行8 - 18):
public void Func()
{
//try
//{
m_member.some_function()
//}
//catch (System.Exception e)
//{
// // do something
//}
}
這個測試將正常工作。
有沒有人有一個想法,爲什麼會發生這種情況?我怎麼能做這個工作? 非常感謝!
請重新格式化您的代碼,而行數。 –
感謝提醒。我已經重新格式化了它。 – user1469452
好了,完成了。謝謝你的幫助。 – user1469452