Как написать собственное утверждение PHPUnit, которое ведет себя как встроенное утверждение?

Как я могу написать собственное утверждение, как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

Есть некоторыедокументация в руководстве, но это, кажется, не покрывает это.

Ответы на вопрос(1)

Ваш ответ на вопрос