Скажем, у меня есть три метода, все очень похожие, но с разными типами ввода:
void printLargestNumber(int a, int b) { ... }
void printLargestNumber(double a, double b) { ... }
void printLargestNumber(String numberAsString, String numberAsString) { ... }
Все три используют одну и ту же базовую логику.Например: возможно, версия double
является единственной, которая сравнивает числа, а две другие просто преобразуют свои входные данные в double
.
. Мы можем представить несколько разных модульных тестов: первый вход больше,секунда больше, оба входа отрицательны и т. д.
Мой вопрос
Должны ли все три метода иметь полный набор тестов (черный ящик, поскольку мы не предполагаем,базовая реализация та же самая)
или
Если только версия double
подверглась тщательному тестированию, а две другие - легкому тестированию для проверки преобразования параметров (тестирование белого ящикапоскольку мы знаем, что они используют одну и ту же реализацию, и она уже была протестирована в double
тестах)?