Получение большего контекста вокруг ошибок теста PHPUnit

В PHPUnit, скажем, я делаю это:

$this->assertTrue( $some_variable == "foo" );

Когда я запускаю свои тесты с моим кодом в состоянии сбоя, PHPUnit сообщает мне: Failed asserting that false is true. Все хорошо, и я обычно могу отследить, ПОЧЕМУ тест не пройден. Но…

Мне интересно, есть ли способ для PHPUnit отображать больше контекста для меня, когда тест не пройден. Например, возможно ли для PHPUnit вывести что-то вроде: Failed asserting that false is true. When your test ran $some_variable was equal to "bar", Это позволило бы мне быстрее выяснить, почему тест не удался.

Я был бы рад, если бы мог видеть этот дополнительный контекст прямо в CLI. Есть ли параметр, который я могу применить к PHPUnit, чтобы это произошло?

1

Решение

С помощью assertTrue

assertTrue Метод имеет второй параметр, где вы можете указать сообщение, которое должно выдать утверждение, когда утверждение было отрицательным:

$this->assertTrue($someVariable == "foo", '$someVariable should have been "foo"')

Использование специализированных функций утверждения

PHPUnit предлагает множество специализированных утверждений (для равенства, идентичности, элементов массива и многих других), которые выдают разумные сообщения об ошибках. Посмотрите на документация.

$this->assertEquals("foo", $someVariable);
1

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

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