При использовании нового стиля тестирования 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 () или до него? (если, конечно, решение не использует перегрузку MethodOptions Expect или что-то еще).
Заранее благодарю за любую помощь.