Как правило, при тестировании модульные тесты должны быть очень специфичными, чтобы между (или близко) однозначным соответствием между функциями и тестами для этих функций.
Для тестирования определенных функций,Тестируемая система (SUT) сначала должна быть приведена в определенное состояние.Как только это состояние достигнуто, тест может фактически проверить функцию, для которой он предназначен.Теперь, каким должен быть статус такого теста, если уже не удается выполнить установку.Он не может сделать заявление о функционировании тестируемой функции, так как тест, который никогда не достиг состояния, требует использования этой функции.
В таких случаях обычно назначают неокончательный результат, поскольку мы просто не можемзнать, работает ли функция как следует, и поэтому мы не можем пройти или потерпеть неудачу.Тот факт, что сама установка не работает должным образом, должен быть охвачен отдельным тестом.
Итак, представьте, я хочу проверить, что 'foo', который был 'bar'ed, вернет 0, когда'qux'ed.Этот тест не должен проверять, можно ли «foo» быть «заперто», поэтому любой отказ быть «запертым» вернет неокончательный результат, тогда как отказ от ответа на «qux» будет правильным провалом.