Что делает хорошее сообщение об ошибке для testunit или других структур стиля nunit?
В тестовом / модульном модуле Ruby и других подобных фреймворках стиля nunit, что делает хорошее сообщение об ошибке?
Должно ли сообщение об ошибке просто описывать, как ожидаемое значение не соответствует ожидаемому значению?
assert_match("hey", "hey this is a test", "The word does not exist in the string")
Должно ли это описать то, что вы ожидали?
assert_match("hey", "hey this is a test", "I expected hey to be in the string")
Должно ли это описывать, почему вы хотели, чтобы это произошло?
assert_match("hey", "hey this is a test", "Program should provide a greeting")
Должно ли оно описывать, почему вы думали, что тест может не пройти?
assert_match("konnichiwa", "konnichiwa this is a test",
"Program failed to use supplied i18n configuration")
Должна ли информация о тестах также присутствовать в названии метода тестирования и в названии контрольного примера?
Это основано на Ruby "test/unit", как мне отображать сообщения в утверждениях
1 ответ
Сообщение об ошибке должно добавить контекст к сообщению об ошибке. Так что все, что избавляет вас от необходимости углубляться в тестовый код, чтобы узнать, что не удалось.
Поэтому, если набор [имя метода, ожидаемый, фактический] подходит для вышеуказанной цели, вы можете пропустить сообщение об ошибке. Если вам нужна дополнительная информация, добавьте дополнительное сообщение об ошибке.
например Expected true but was false
, ничего не говорит мне.
Вы можете использовать сообщение об ошибке, чтобыReturn value should contain only multiples of 10. Expected true but was false
Вы можете сначала попытаться использовать более описательные соответствия. Так что сбои читаю Expected all items to be divisible by 10 but was [10,20,35,40]
делает.
Лично я предпочитаю совпадения... использовать сообщения об ошибках в качестве последнего средства. (потому что, как и комментарии, он исчезает. Вам нужна дисциплина, чтобы гарантировать, что сообщение об ошибке обновляется, если вы измените проверку.)