如何编写自定义断言,如assertFoo($expected, $actual)
,其行为与关于错误“堆栈跟踪”的内置断言相似?如何编写自定义PHPUnit断言,其行为如同内置断言?
我现在已经定义了下面的方法(即扩展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,但它似乎并没有涵盖这一点。
你可以显示你的assertFoo()函数的代码。 – 2012-07-31 23:36:08
@DarrenCook当然,更新。 – mjs 2012-08-01 14:03:38