В этот момент все проходит, теперь я должен назвать это днем и пойти или я должен пойти и добавить тест, если он не проходит для Пурпурного?Имеет ли смысл добавить этот тест?Если это так, я все еще могу назвать другие 10 цветов для тестирования, стоит ли мне их тоже учитывать?
Один из подходов к улучшению вашей оценки объекта тестирования без перечисления всего мира - это тестирование на основе свойств.Скотт Влашин написал хорошее введение в технику .
. Кент Бек известен тем, что обращал внимание на дублирование данных между тестом и реализацией, и Дж. Б. Рейнсбергер предположил, что в рамкахваша работа по удалению дубликатов, данные имеют тенденцию двигаться к тесту.Так что же это значит?
В вашем случае звучит так, как будто вы можете разделить испытуемый объект на две части - одна часть выглядит как база данных (карта, справочная таблица) имен цветов,другая часть - некоторая логика, которая делает что-то интересное, учитывая базу данных имен цветов.
В последней части вы получаете тесты типа «дано база данных [красный, зеленый, синий], принимает ли субъект тестапуть «это не цвет», когда вход пурпурный; при наличии базы данных [красный, зеленый, синий, фиолетовый] испытуемый выбирает путь «это цвет», когда ввод пурпурный ».
Это оставляет вас с базой данных для беспокойства.Что вы хотите быть осторожным, так это тот факт, что простое тестирование того, что вы ввели одинаковые данные в двух разных местах, не особенно ценно.
Вы также можете рассмотреть это наблюдение из Бек
Мне платят за работающий код, а не за тесты, поэтому моя философия заключается в том, чтобы как можно меньше тестировать, чтобы достичь заданного уровня достоверности
Помните,время, вложенное в тесты, - это время, не вложенное в другое место.Иногда правильной игрой является доставка, а затем возвращение к коду, когда вы узнали что-то новое о том, как оно должно работать.