Dav*_*vid 10 unit-testing rhino-mocks
我有这个问题,这可能是Rhino Mocks 3.5中的一个错误:
stubObj = MockRepository.GenerateStub(IObject);
stubObj.Stub(a=>a.Get()).Return (Guid.Empty); //1.stub
stubObj.Stub(a=>a.Get()).Return (Guid.NewGuid()); //2.stub, should overwrite the first one?
这个:
var value = stubObj.Get(); 
返回Guid.Empty,这是正确的行为吗?
如果你想要返回空guid已知的次数,你唯一需要做的就是告诉RhinoMocks多少次重复它,例如以下测试通过:
[Test]
    public void MultipleStubsTest()
    {
        var testMock = MockRepository.GenerateMock<ITest>();
        testMock.Stub(x => x.Get()).Return(Guid.Empty).Repeat.Once();
        testMock.Stub(x => x.Get()).Return(Guid.NewGuid());
        Assert.AreEqual(Guid.Empty, testMock.Get());
        Assert.AreNotEqual(Guid.Empty, testMock.Get());
    }
如果你不知道在guid改变之前会调用多少次Get(),那么你总是可以使用.Do()并在那里编码(如果你需要更多细节,请告诉我).
应通过以下测试:
// arrange
var stubObj = MockRepository.GenerateStub<IObject>();
stubObj.Stub(a => a.Get())
       .Return(Guid.Empty);
// act
var value = stubObj.Get();
// assert
Assert.AreEqual(Guid.Empty, value);
如果你想返回一个新的指南:
// arrange
var stubObj = MockRepository.GenerateStub<IObject>();
stubObj.Stub(a => a.Get())
       .Return(Guid.NewGuid());
// act
var value = stubObj.Get();
// assert
Assert.AreNotEqual(Guid.Empty, value);
| 归档时间: | 
 | 
| 查看次数: | 3545 次 | 
| 最近记录: |