这个问题澄清了Rhino:What are the differences between mocks and stubs on Rhino Mocks?中模拟和存根之间的概念差异。
然而,我不明白为什么Rhino对象提供诸如.Expect和.VerifyAllExpectations()之类的方法,而这些方法似乎什么都不做。为什么模拟/存根对象似乎提供相同的接口?
这让我觉得我错过了一些基本的东西--或者仅仅是一个实现的怪癖?
发布于 2016-05-30 11:01:15
这种行为的原因是基于IntelliSense限制(在扩展方法上)+ Rhinomocks设计(+ bug在断言上),正如我解释的here。
下面的示例显示,Expect方法只有存根上的Stub方法。
public class Foo
{
public virtual string DoSomthing()
{
return String.Empty;
}
}
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
var f = MockRepository.GenerateStub<Foo>();
f.Expect(x => x.DoSomthing())
.Return("2");
f.VerifyAllExpectations();
}
}如果要执行上面的示例,您将看到测试不会失败(尽管DoSomthing从未被调用.)
https://stackoverflow.com/questions/37305338
复制相似问题