Как выполнить модульное тестирование функции, которая зацикливается на объектах?

Позвольте мне объяснить себя.

function insertObjects($objs) {
foreach ($objs as $obj) {
$this->repository->insert($obj);
}
}

Я не хочу проверять, что вставка в базу данных работала, потому что я предполагаю, что она работает (это другой модуль). Я также не хочу тестировать foreach, потому что очевидно, что foreach будет работать. Поэтому единственное, что нужно проверить, это то, что $ objs — это правильно сформированный массив. Но если $ objs — это фиктивные данные, которые я буду передавать … значит ли это, что для этой функции проверять нечего?

2

Решение

Если есть вероятность неверного ввода (некорректно сформированный массив, нулевое значение и т. Д.), Вам нужно обработать этот случай в своем методе, явно проверив его.

В этом тесте вы затем попытаетесь вызвать ваш метод с различными недопустимыми значениями и проверить, правильно ли реагирует ваш метод, то есть метод вставки базы данных не вызывается, генерируются исключения, регистрируются ошибки и т. Д.

Кроме этого, единственное, что нужно проверить — это то, что метод вставки базы данных вызывается с параметрами, которые соответствуют значениям в допустимом массиве тестов, который вы передаете.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]