Как я могу написать пользовательское утверждение, такое как assertFoo($expected, $actual)
, которое ведет себя как встроенное -в утверждениях в отношении ошибки «трассировка стека»?
В настоящее время у меня есть следующий метод, определенный (в классе, который расширяетPHPUnit_Framework_TestCase
):
public static function assertFoo($expected, $actual) {
self::assertEquals($expected, $actual);
}
Если я вызываю это из теста, а тест не проходит, я получаю два элемента в стеке вызовов:
1) PreferencesTest::testSignupTeacher
Failed asserting that 5 matches expected 3.
/vagrant/myproject/tests/integration/PreferencesTest.php:17
/vagrant/myproject/tests/integration/PreferencesTest.php:136
В строке 17 assertFoo()
вызывает встроенный -в assertEquals()
и терпит неудачу; строка 136 там assertFoo()
называется.
Если я изменю тест на прямой вызов assertEquals()
, я получу только один:
1) PreferencesTest::testSignupTeacher
Failed asserting that 3 is true.
/vagrant/myproject/tests/integration/PreferencesTest.php:136
В руководстве есть некоторая документация, но, похоже, она не охватывает это.