帮助,任何人都可以帮助解释Rhino Mocks'Record'范围的目的吗?
我假设在范围内设置的期望只会被验证,但是一旦你创建了模拟对象,Rhino Mocks就处于'记录模式',所以我现在不确定Record范围的目的.
这是我的一个例子:
private static void SomeTest()
{
MockRepository mockRepository = new MockRepository();
ISomeInterface test = mockRepository.StrictMock<ISomeInterface>();
test.Bar();
using (mockRepository.Record())
{
Expect.Call<string>(test.GetFoo()).Return("Hello");
}
using (mockRepository.Playback())
{
test.GetFoo();
}
}
public interface ISomeInterface
{
string GetFoo();
void Bar();
}
Run Code Online (Sandbox Code Playgroud)
此测试将失败,因为期望应该调用Bar.是因为我创建了StrictMock而不是Dynamic?
此测试将失败,因为没有期望Bar()被调用,但它被调用.
要回答你的问题,是的,这是因为你有一个严格的模拟.如果您更改为DynamicMock,它将忽略除实际设置的期望之外的所有内容.我强烈建议尽可能使用DynamicMocks,因为StrictMocks实际上非常脆弱,并且往往会带来很多麻烦.
对于Record/Replay,如果你使用的是具体的MockRepository,它不会自动处于Record模式.只是StrictMock的本质是寻找任何被称为超出预期的东西,无论何时.
| 归档时间: |
|
| 查看次数: |
2500 次 |
| 最近记录: |