Должен ли я написать один тест для каждой записи
значение или я должен изменить
значение переменной entryValues и вызов
метод .assert () (делает это для всех
диапазон возможных значений)?
Если у вас один путь кода, как правило, вы не тестируете все возможные входные данные. Обычно вы хотите проверить «интересные» входные данные, которые служат хорошим примером данных, которые вы получите.
Например, если у меня есть функция
define add_one(num) {
return num+1;
}
Я не могу написать тест для всех возможных значений, поэтому я могу использовать MAX_NEGATIVE_INT, -1, 0, 1, MAX_POSITIVE_INT в качестве моего набора тестов, поскольку они являются хорошими представителями интересных значений, которые я мог бы получить.
У вас должен быть хотя бы один вход для каждого пути кода. Если у вас есть функция, в которой каждому значению соответствует уникальный путь к коду, я бы подумал написать тесты для всего диапазона возможных значений. И примером этого будет парсер команд.
define execute(directive) {
if (directive == 'quit') { exit; }
elsif (directive == 'help') { print help; }
elsif (directive == 'connect') { intialize_connection(); }
else { warn("unknown directive"); }
}
Для ясности я использовал elifs, а не таблицу отправки. Я думаю, это дает понять, что каждое уникальное значение имеет свое поведение, и поэтому вам нужно будет проверить каждое возможное значение.