2014-04-08 2 views
0

다음 단위 테스트가 있지만 필요한 값을 반환하지 않습니다. 어쩌면이게 어떻게 제대로 작동하는지 이해하지 못할 수도 있습니다.PHPUnit 스텁이 필요한 값을 반환하지 않습니다.

class TestClass 
{ 
    public function getData() 
    { 
     $id = 1123; 
     return $id; 
    } 
} 

class Test_ClassTesting extends PHPUnit_Framework_TestCase 
{ 

    public function test_addData() 
    { 
     $stub = $this->getMock('TestClass'); 


     $stub 
      ->expects($this->any()) 
      ->method('getData') 
      ->will($this->returnValue('what_should_i_put_here_to_get id from TESTCLASS')); 


     $y = $stub->getData(); 

    } 
} 
+0

달성하려는 목표가 명확하지 않습니다. 스텁을 원하면'returnValue'에 스텁 값을 하드 코딩하십시오. '1123' 값을 얻으려면'TestClass'를 인스턴스화하고 mocks/stub의 사용법을 버리십시오. –

+0

스 니펫에 어설 션이 없으므로 테스트하려는 내용이 명확하지 않습니다. –

+0

코드 조각이 올바르게 작동합니다. '$ this-> returnValue()'에 매개 변수로 테스트를 위해 원하는 id 값을 넣어야합니다. – Schleis

답변

0

의견 작성자의 말처럼 단순히 원하는 값만 반환하십시오.

class TestClass 
{ 
    public function getData() 
    { 
     $id = 1123; 
     return $id; 
    } 
} 

class Test_ClassTesting extends PHPUnit_Framework_TestCase 
{ 
    public function test_addData() 
    { 
     $stub = $this->getMock('TestClass'); // Original Class is not used now 
     $stub 
      ->expects($this->any()) 
      ->method('getData') 
      ->will($this->returnValue(4444)); // Using different number to show stub works, not actual function 
     $this->assertEquals(4444, $stub->getData()); 
    } 

    public function test_addDataWithoutStub() 
    { 
     $object = new TestClass(); 
     $this->assertEquals(1123, $object->getData()); 
    } 
} 
관련 문제