如何编写自定义PHPUnit断言,其行为类似于内置断言?

时间:2012-07-31 17:59:18

标签: phpunit assertion

如何编写自定义断言,如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

有一些documentation in the manual,但它似乎没有涵盖这一点。

0 个答案:

没有答案