[英]Why does my mock fail?
在下面的代碼中,如果我正確理解它,就將Speed屬性設置為0並應將其調用Stop方法,但是在運行測試時,它表示希望它被調用Stop,但是不叫。 這是代碼:
public class Car
{
public virtual int Speed { get; set; }
public virtual bool Stopped()
{
if (Speed > 0)
return false;
Stop();
return true;
}
public virtual void Stop()
{
}
}
[TestFixture]
public class CarTests
{
[Test]
public void WhenSpeedIsZeroCarShouldBeStopped()
{
var carMock = MockRepository.GenerateMock<Car>();
carMock.Stub(x => x.Speed).Return(0);
carMock.Expect(x => x.Stop());
carMock.VerifyAllExpectations();
}
}
我得到的實際錯誤是:
Rhino.Mocks.Exceptions.ExpectationViolationException: Car.Stop(); Expected #1, Actual #0.
at Rhino.Mocks.Impl.ReplayMockState.Verify()
at Rhino.Mocks.MockRepository.Verify(Object obj)
at Rhino.Mocks.RhinoMocksExtensions.VerifyAllExpectations(Object mockObject)
at MockTutorial.CarTests.WhenSpeedIsZeroCarShouldBeStopped() in C:\Programming\Test\MockTutorial\MockTutorial\DirectoryInfoSample.cs:line 94
您不是在調用Stopped()
,而是要詢問Speed
屬性或調用Stop()
嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.