Смотреть тест не пройден - PullRequest
0 голосов
/ 20 января 2011

Почему так важно смотреть, как тест проваливается сразу после его написания?Как это имеет смысл?

Я знаю, что это потерпит неудачу, потраченное время.

Ответы [ 4 ]

4 голосов
/ 20 января 2011

Есть много преимуществ для написания не пройденного теста.

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

На более практическом уровне неудачные тесты приводят к меньшим решениям.Когда вы пишете достаточно кода, чтобы пройти один неудачный тест, вы (часто) добавляете лишь немного к тому, что у вас было раньше.Вы знаете, что этот новый бит является частью вашего кода, которая удовлетворяет этому тесту;Вы знаете, почему это там.А затем вы пишете следующий неудачный тест для следующего небольшого добавочного кусочка функциональности.Вы не переоцениваете свое решение;вы строите достаточно.

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

Неудачные тесты информируют вас о вашем коде и (что более важно) о вашем понимании вашего кода;они говорят вам: «Да, ваше понимание того, что код не выполняет X, является правильным, и вы выразили это понимание правильно и конкретно», или «Нет - что-то не так».С другой стороны, новые проходящие тесты говорят только «Да, похоже, это работает», но иногда это может быть из-за неправильного теста.

3 голосов
/ 20 января 2011

Говоря «Я знаю, что это не удастся» связано с «Я знаю, что это удастся» . И если последнее действительно будет правдой, ваша программа не будет иметь никаких ошибок ;-) То же самое с провалом теста: вы действительно знаете, только когда попробовали.

3 голосов
/ 20 января 2011

Так что вы можете быть уверены, что написали свой тест правильно. Если это удастся, значит, вы знаете, что напортачили, написав свой тест.

0 голосов
/ 06 августа 2015

На самом деле дело в том, чтобы посмотреть сообщение о неудачном тесте. Как это отражает проблему с вашим кодом? Насколько это выразительно? Вы должны корректировать свой тест до тех пор, пока в сообщении не будет точно указано, в чем проблема с вашим кодом. Это сделает вашу жизнь намного проще, когда в будущем тест не пройдёт, если вы что-то затормозите, и в этом суть.

...