PHPUnit: есть что-то вроде & quot; assertExistsNotNull & quot ;?

Недавно я обнаружил следующую проблему:

self::assertNull($someArray[$someIndex]);

Если $ someIndex не существует индекс $ SomeArray, $ SomeArray [$ someIndex] будет оценивать ноль а также assertNull (нуль) скажет, что все в порядке. Так что в основном PHPUnit скрывает проблему.

Есть ли что-то вроде

self::assertExistsNotNull($someArray[$someIndex]);

что верно только если $ SomeArray [$ someIndex] существует и не ноль?

1

Решение

Ты можешь использовать assertArrayHasKey() в дополнение к assertNull() как объяснено в документация

2

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

Кажется, ваша проблема не в том, что PHPUnit «скрывает» проблемы, а в том, что вы скрываете проблемы с настройками отчетов об ошибках PHP.

PHP выдаст уведомление для неопределенного индекса. Я настоятельно рекомендую вам как разработать, так и протестировать с параметром error_reporting, установленным в E_ALL, и включенным display_errors. Поэтому во время тестирования вы увидите проблему, если она не определена, и, следовательно, вам не нужно добавлять новое утверждение.

0

Вы можете написать собственное утверждение: https://phpunit.de/manual/6.5/en/extending-phpunit.html#extending-phpunit.custom-assertions

Или напишите что-нибудь подобное:

self::assertThat($someArray, self::logicalAnd(self::arrayHasKey($someIndex), self::logicalNot(self::isNull())));
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector