gpt4 book ai didi

c# - 为什么 Rhino Stubs 允许我对它们设定期望值?

转载 作者:行者123 更新时间:2023-11-30 23:25:23 25 4
gpt4 key购买 nike

这个问题阐明了 Rhino 中模拟和 stub 之间的概念差异:What are the differences between mocks and stubs on Rhino Mocks?

然而,我很困惑为什么 Rhino Stub 对象会提供诸如 .Expect.VerifyAllExpectations() 之类的方法,而这些方法似乎什么都不做。为什么模拟/ stub 对象看似提供相同的接口(interface)?

这让我觉得我错过了一些基本的东西——或者这只是一个实现怪癖?

最佳答案

此行为的原因是基于 IntelliSense 限制(关于扩展方法)+ Rhinomocks 设计(+ 断言上的错误),正如我解释的那样 here .

下面的例子表明 Expect 方法只不过是 stub 上的 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...)

关于c# - 为什么 Rhino Stubs 允许我对它们设定期望值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37305338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com