#c# #unit-testing
#c# #модульное тестирование
Вопрос:
У меня есть простая задача отобразить объект fruit на основе определенных условий. Например, если мне нужно показать банан, мне нужно убедиться, что другие фрукты не отображаются.
Для простоты предположим, что это 4 возможных результата. Нужно ли мне тестировать все возможные комбинации?
Тест1, если банан не клубничный
Тест2, если банан не яблочный
И т.д.
Ответ №1:
Вам нужно протестировать столько комбинаций, сколько существует путей к коду, наверняка. Если нет кода, специфичного для strawberry или Apple, то вам не нужно тестировать как banana v. strawberry, так и banana v. apple. Но если для данного фрукта есть другой код, вам нужно протестировать его, а также один из других; и если есть другой код, основанный на количестве фруктов, тогда вам нужно протестировать 0, 1, 2, N-1, N и N 1, независимо от наибольшего значения N . В общем, вам нужно протестировать достаточно, чтобы убедить себя, что дополнительные тесты не помогут.
Ответ №2:
Зависит от нескольких факторов. Но одним из способов было бы просто убедиться, что у вас есть banana только тогда, когда вы ожидаете банан. Я уверен, что между типами есть различия, поэтому вы можете утверждать об этом (например, утверждать, что имена всех объектов являются только «банановыми»).
Ответ №3:
Это зависит от того, способен ли ваш код отображать более одного фрукта одновременно (случайно или иным образом). Чрезвычайно безопасным выбором было бы «Да, протестируйте все!»