1
我有一個服務功能,它需要運行的步驟。我有很多嘗試與犀牛嘲笑,但沒有運氣。我無法通過測試。如何測試服務功能需要運行的步驟?
所以問題是什麼是測試這個最好的方法?代碼重構是否需要?
任何幫助表示讚賞。非常感謝。
public class Service : IService
{
public void Initialize()
{
Function1();
Function1();
Function1();
}
public void Function1() {}
public void Function2() {}
public void Function3() {}
}
public interface IService
{
void Initialize();
void Function1();
void Function2();
void Function3();
}
[Test]
public void Test1
{
var mockService = MockRepository.GenerateMock<OfficePrinterService>();
mockService.Initialize();
// Test will Error Here.
// No expectations were setup to be verified, ensure that the method call in the action is a virtual (C#)/overridable (VB.Net) method call
mockService.AssertWasCalled(x=>x.Function1());
mockService.AssertWasCalled(x=>x.Function2());
mockService.AssertWasCalled(x=>x.Function3());
}
[Test]
public void Test2
{
var mockService = MockRepository.GenerateMock<IOfficePrinterService>();
mockService.Initialize();
// Test will Error Here.
// Rhino.Mocks.Exceptions.ExpectationViolationException : IService.Function1(); Expected #1, Actual #0.
mockService.AssertWasCalled(x=>x.Function1());
mockService.AssertWasCalled(x=>x.Function2());
mockService.AssertWasCalled(x=>x.Function3());
}
感謝您的回覆,我想可能是這種情況。對我來說唯一的困難將是如何測試正確的事件處理程序已被註冊。 –