Ну если ты не знаешь разницы между square и square root то случай совсем безнадежен и никакие огурцы уже не помогут, только assembler, только хардковAlexander Troyansky wrote: ↑02 Dec 2018 04:20
какаятотрудночитаемаяневедомаяебаннаяхерня... да ещё и корень из -2 будет 4. Или ошибка илия - тупой и утомился пока это пытался понять (квадрат, а не квадратный корень)?. Таким образом решается вопрос связи между спеками и тестами?
А читается легко, причем в VS оно еще все подсвечено (ключевые слова, параметры), и линкуется с методами. То есть в данном случае имплементация будет в 3 метода - один вызов функции с параметром (число), второй сравение результата с числом и третий сравнение ошибки с текстом. Из этих трех методов собираются сценарии. То есть если мне надо будет добавить тест на другое граничное число, кода писать будет не надо - достаточно набрать сценарий в огурце и он слинкуется с уже существующими методами. Это очень удобно когда требуются похожие действия на различные данные - к примеру, у нас есть некий кусок кода который индексирует файлы и позволяет искать текст. На вход тестов подаются различные файли и параметры индексирования типа игнорирования регистра, в when идет поисковая фраза, в then количество найденых слов. Таких тестов реально много, но самого кода с гулькин нос, три метода. При этом читать и добавлять новые сценарии при необходимости можно доверить даже не программисту, а тестеру после нахождения и исправления багов.
В случаях когда тесты слишком разнятся и использовать одни и те же методы не получается, то пишем не огурцы а обычные юнит тесты, дабы избежать лишних телодвижений.
Как я уже сказал, TDD (BDD) мы не практикуем но инструментами пользуемся когда это полезно.