Вопрос о методе заглушки, составленном другими методами - PullRequest
1 голос
/ 31 марта 2011
   def foo
     a & b & c & d
   end

И это очень важно для логики приложения, поэтому я должен написать для нее хороший тест. Методы a, b, c, d уже опробованы. Должен ли я подготовить полные данные, чтобы заставить a, b, c, d работать и вернуть запрошенные значения, или заглушка в этом случае достаточно?

Ответы [ 3 ]

1 голос
/ 31 марта 2011

Если вы действительно хотите тщательно протестировать это, я бы написал два вида автоматических тестов: модульный тест , который получит a, b, c и d в качестве заглушек, и интеграционный тест , что бы убедиться, что вся логика хорошо работает вместе и нет проблем с интеграцией.

1 голос
/ 31 марта 2011

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

Если вы используете mock вместо заглушек, это, по крайней мере, проверит, что все методы вызываются, но на самом деле это всего лишь документальный тест.

AnИнтеграционный тест с использованием данных может быть полезен.

1 голос
/ 31 марта 2011

Модульный тест должен проверять только тестируемый метод, т.е. foo.Это означает, что вы должны использовать заглушки a, b, c и d.
Чтобы использовать его как-либо, вы должны убедиться, что вы охватили все угловые случаи, которые могут возникнуть в результате возвращаемых значений этих методов.

...