Юнит тест класс с заглушками. Должен ли я настроить заглушки для возврата ВСЕГДА правильных значений? - PullRequest
0 голосов
/ 08 января 2012

это один из моих вопросов о модульном тестировании.

Я читаю «Искусство модульного тестирования», и в главе 3 автор показывает, как удалить зависимость между одним или несколькими классами.Это кажется мне понятным.Что не совсем ясно, так это следующий пункт.

Когда я настраиваю метод теста с заглушкой, я настраиваю его для возврата определенного значения.Затем я вызываю тестируемый метод, представленный тестируемым классом.Этот метод выполняет некоторую логику и использует возвращаемое значение заглушки.Проблема в том, что если заглушка настроена на возврат неправильного значения, мой тест, вероятно, не пройдёт.

Итак, вопрос в том, должен ли я ВСЕГДА настраивать их для возврата ожидаемого значения, когда я использую заглушки.На мой взгляд, это должен быть правильный способ проверки, как если бы заглушка всегда возвращала ожидаемое значение. Я уверен, что проверю только логику внутри проверенного метода.

Что вы думаете об этом?Есть ли какой-то случай, в котором есть какой-то смысл заставлять заглушку возвращать неверные значения?

Большое спасибо, Марко

Ответы [ 2 ]

2 голосов
/ 08 января 2012

Вы тестируете, как sut (тестируемая система) работает в нескольких условиях:

  • хороший путь = настройка заглушек для возврата хороших значений и проверки правильности поведения sut
  • печальный путь (пути) = настроить заглушки с неправильными значениями и убедиться, что sut может обрабатывать таких случаев (например, вы можете проверить, что он выдает исключение, используя атрибут ExpectedException если вы используете nUnit)
1 голос
/ 08 января 2012

Вы можете настроить метод-заглушку так, чтобы он возвращал значение в зависимости от настроек теста в некоторых сценариях. В других вернуть значение по умолчанию, которое должно быть допустимым.

...