duanan5940 2013-03-20 14:30
浏览 28
已采纳

PHPUnit说我不会将参数传递给父类方法。 我是

I have a test class that extends an abstract parent class. The parent class extends PHPUnit_Framework_TestCase, it defines some methods that all tests will use.

I'm having an issue calling the parents methods. Phpunit is saying that i'm not providing any arguments to the method but i am.

Here is the child's method

public function testEmptyGarbageNullDataDoesntValidate() {
    $rule = new Rule\Between( 1, 10 );
    $this->testNullDataDoesntValidate( $rule );
    // $this->testEmptyDataDoesntValidate( $rule );
    // $this->testGarbageDataDoesntValidate( $rule );
}

Here's the parent method

public function testNullDataDoesntValidate( \Validator\Rule $rule ) {
    $this->validator->addRule( 'null', $rule );
    $this->assertFalse( $this->validator->validate( array( 'null' => null ) ) );
}

I'm getting the error

Argument 1 passed to BaseRuleTest::testNullDataDoesntValidate() must be an instance of Validator\Rule, none given

It's saying None is given, but its being given. I can go into the child's function and var_dump( $rule ) and see the data, it's definitely there.

Here's the var_dump from within the parent method

object(Validator\Rule\Between)#210 (2) {
  ["min_value":protected]=>
  int(1)
  ["max_value":protected]=>
  int(10)
}

I'm assuming it has something to do with the way phpunit works. I'm new to phpunit.

Any ideas?

  • 写回答

2条回答 默认 最新

  • dousu1916 2013-03-20 14:35
    关注

    Try renaming testNullDataDoesntValidate to something that doesn't start with test.

    Functions that are actual tests begin with the word "test". See here: http://www.phpunit.de/manual/3.6/en/writing-tests-for-phpunit.html

    Because that makes them actual tests, phpunit calls it without arguments.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 iOS绕地区网络检测
  • ¥15 python验证码滑块图像识别
  • ¥15 根据背景及设计要求撰写设计报告
  • ¥15 QT6颜色选择对话框显示不完整
  • ¥20 能提供一下思路或者代码吗
  • ¥15 用twincat控制!
  • ¥15 请问一下这个运行结果是怎么来的
  • ¥15 单通道放大电路的工作原理
  • ¥30 YOLO检测微调结果p为1
  • ¥15 DS18B20内部ADC模数转换器