Rhino Mocks: «Подтвердить» против «Утвердить» - PullRequest
7 голосов
/ 28 марта 2009

Когда вы используете Rhino Mocks, когда уместно использовать «VerifyAll» и когда мне следует делать «Asserts»?

Ответы [ 2 ]

9 голосов
/ 28 марта 2009

VerifyAll и Verify используются для проверки того, что некоторые методы были вызваны (и, возможно, для проверки параметров, с которыми они были вызваны). Это считается «тестированием на основе взаимодействия» и используется, когда вы хотите убедиться, что тестируемая система вызывает метод на одной из своих зависимостей.

Утверждения обычно означают, что вы хотите убедиться, что возвращаемое значение имеет правильное значение. Утверждения используются для так называемого «тестирования на основе состояния», которое, по сути, проверяет состояние тестируемой системы после того, как на нее было выполнено действие.

verifyall, проверить это .

Кроме того, дифференцируйте Макет и окурок .

3 голосов
/ 28 марта 2009

Я полагаю, что VerifyAll относится к старому стилю использования RhinoMocks, где у вас будет шаг записи и шаг воспроизведения, после чего вы будете проверять все ожидания. В этой модели вы должны на этапе записи настроить ожидание (например, ожидать, что этот метод будет вызываться с параметрами x, y, z и т. Д.).

Более новые версии RhinoMocks вводят синтаксис Arrange-Act-Assert (AAA) в качестве предпочтительного шаблона; Используя этот шаблон, имеет больше смысла использовать утверждения в конце вашего метода тестирования. Все еще возможно использовать VerifyAllExpectations (), но лично я думаю, что это читается легче, если все ваши утверждения происходят в блоке в конце теста.

Так что я думаю, что ответ (во всяком случае, для меня) заключается в том, что это личное предпочтение; Перейдите по ссылке выше, где у него есть несколько примеров одного и того же теста, и выберите тот, который лучше всего вам подходит.

...