使用新的 Rhino Mocks 3.5 Arrange/Act/Assert (AAA) 测试风格,我在编写测试时遇到问题。
我有一个调用存储库类上的方法的方法。ActivateFoo,我的 Foo 对象有一个 IsActive 属性。ActivateFoo 对象的结果应该改变属性。
这是示例代码:
[TestMethod]
public void Should_update_foo_to_active_inside_of_repository()
{
// arrange
var repo = MockRepository.GenerateMock<IRepository>();
var foo = new Foo() { ID = 1, IsActive = false };
var target = new Presenter(repo);
repo.Expect(x => x.ActivateFoo(foo)).Return(true);
// act
target.Activate(foo);
// assert
Assert.IsTrue(foo.IsActive);
repo.VerifyAllExpectations();
}
我猜关键代码段将在“ActivateFoo(foo))”之间。和“返回(真);”。
有一点要澄清方法链接的东西在幕后是如何工作的,如果在我期望的行上写了代码,它是在 Return() 之后还是之前有关系吗?(当然,除非解决方案是使用 Expect 的 MethodOptions 重载,或者其他)。
提前感谢您的帮助。