我有一个扩展抽象父类的测试类。父类继承了PHPUnit_Framework_TestCase
,它定义了一些所有测试都会使用的方法。
我有一个问题调用父母的方法。Phpunit说,我没有提供任何参数的方法,但我。
这是子方法
public function testEmptyGarbageNullDataDoesntValidate() {
$rule = new Rule'Between( 1, 10 );
$this->testNullDataDoesntValidate( $rule );
// $this->testEmptyDataDoesntValidate( $rule );
// $this->testGarbageDataDoesntValidate( $rule );
}
父方法
public function testNullDataDoesntValidate( 'Validator'Rule $rule ) {
$this->validator->addRule( 'null', $rule );
$this->assertFalse( $this->validator->validate( array( 'null' => null ) ) );
}
我得到错误
参数1传递给BaseRuleTest::testNullDataDoesntValidate()必须是Validator'Rule的一个实例,none given
它说None是给定的,但是它被给定了。我可以进入儿童功能和var_dump( $rule )
并查看数据,它肯定在那里。
这是父方法
中的var_dump
object(Validator'Rule'Between)#210 (2) {
["min_value":protected]=>
int(1)
["max_value":protected]=>
int(10)
}
我认为这与phpunit的工作方式有关。我是phpunit新手。
任何想法?
尝试将testNullDataDoesntValidate
重命名为不以test
开头的东西。
实际测试的函数以单词"test"开头。详见:http://www.phpunit.de/manual/3.6/en/writing-tests-for-phpunit.html
因为这使它们成为实际测试,所以phpunit调用它时不带参数。
传递给BaseRuleTest::testNullDataDoesntValidate()的参数1必须是Validator'Rule的一个实例,none given
这个错误来自PHPUnit试图调用test方法,而不是来自你的代码调用该方法。
如果您包含了堆栈跟踪(安装xdebug以始终看到它),那将是显而易见的。