Как написать пользовательское утверждение 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

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

6
задан mjs 1 August 2012 в 14:03
поделиться