簡體   English   中英

為什么我的模擬失敗?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM