2016-07-11 4 views
0

에 대한 인수 1을 누락 :phpunit을 오류 : 나는 아래의 테스트 스크립트가 dataProvider의

1) testTest::test_test 
Missing argument 1 for testTest::test_test() 

내 테스트에 맞게 다른 시험이 :이 실행할 때마다

class testTest extends PHPUnit_Framework_TestCase 
{ 

    public function provider() { 
     return [ 
      [1,false], 
      [2,true] 
     ]; 
    } 

    /** 
    * @test 
    * @provider provider 
    */ 
    public function test_test($num, $expected) { 
     $actual = $num%2 ? false : true; 
     $this->assertEquals($actual, $expected); 
    } 
} 

을 나는 오류 dataProviders를 사용하지 않고 잘 작동합니다. 이 문제를 어떻게 해결할 수 있습니까?

+1

당신이 학급 전체를 붙여 넣을 수 있습니까? 먼저 데이터 제공자 메소드 이름을'testDataProvider'에서'provider'로 변경하십시오. (주석의 이름도 변경하십시오.) – rokas

+0

업데이트를 확인하십시오. 제안한 testDataProvider를 공급자로 변경했지만 행운은 없습니다. –

답변

1

@provider에서 @dataProvider으로 변경하십시오.

/** 
* @dataProvider provider 
*/ 
public function test_test($num, $expected) { 
    $actual = $num%2 ? false : true; 
    $this->assertEquals($actual, $expected); 
} 

은 설명서를 읽어 https://phpunit.de/manual/current/en/appendixes.annotations.html#appendixes.annotations.dataProvider


PS를 : 당신은 인수에게 assertEquals에서 길을 잘못 내내 가지고있다. 그것은해야한다 : 다시

$this->assertEquals($expected, $actual); 

: https://phpunit.de/manual/current/en/appendixes.assertions.html#appendixes.assertions.assertEquals

관련 문제