mocking - rhino-mocks stub 和期望有什么区别

标签 mocking rhino-mocks stub stubbing expectations

rhino-mocks stub 和这里的期望有什么区别:在我看来它们的行为完全相同?

mockContext.Stub(x => x.Find<Blog>())
    .Return(new List<Blog>() 
    { 
        new Blog() { Id = 1, Title = "Test" } 
    }.AsQueryable());

mockContext.Expect(x => x.Find<Blog>())
    .Return(new List<Blog>()
    {
        new Blog(){Id = 1,Title = "Title"},
        new Blog(){Id=2,Title = "no"}
    }.AsQueryable());

最佳答案

Stub() 定义 stub 对象的行为
Expect() 定义模拟对象的行为期望

因此,如果您需要检查模拟方法是否被调用,您应该使用Expect:

var mockContext = MockRepository.GenerateMock<IContext>();
mockContext.Expect(x => x.Find<Blog>()).Return(new List<Blog>());

现在,在测试操作完成后,您可以验证是否满足期望:

mockContext.VerifyAllExpectations();

如果您需要 stub 方法行为,可以使用 Stub():

var mockContext = MockRepository.GenerateStub<IContext>();
mockContext.Stub(x => x.Find<Blog>()).Return(new List<Blog>());

关于mocking - rhino-mocks stub 和期望有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13646038/

相关文章:

c# - 我可以在 Rhino-Mocks 3.6 中使用 AAA 语法测试方法调用顺序吗?

c# - RhinoMocks 期望复杂对象作为参数

tdd - 不同测试替身之间的区别重要吗?

javascript - Sinon - stub 模块功能并在没有依赖注入(inject)的情况下对其进行测试

c# - CollectionAssert.AreEquivalent 失败......无法弄清楚为什么

java - Mockito 中 spy 的详细模式

database - Mock 框架可以为我做这个吗?

java - 使用 Mockito 来模拟某些方法,但不能模拟其他方法

c# - 测试遗留代码时添加虚拟关键字

javascript - Sinon 如何 stub Promise?