0
아래 예제에서 multipliedValue()
안에 getBaseValue()
이라는 호출을 모의하고 싶습니다. 그러나 나는 그것을 알아낼 수 없다.PHPUnit : 테스트중인 메소드로 내부적으로 호출 된 함수를 모의하는 방법
class Sample
{
function multipliedValue()
{
$value = $this->getBaseValue();
return $value * 2;
}
function getBaseValue()
{
return 2;
}
}
나는 PHPUnit 조롱을 사용했지만 작동하지 않았습니다.
class SampleTest extends PHPUnit_Framework_TestCase
{
function testMultipliedValueIfBaseValueIsFalse()
{
$mockedObject = $this->getMockBuilder(Sample::class)
->setMethods(['multipliedValue', 'getBaseValue'])
->getMock();
$mockedObject->expects($this->any())
->method("getBaseValue")
->willReturn(false);
$result = $mockedObject->multipliedValue();
$this->assertFalse($result);
}
}
내가 전역 함수를 만들 수 있지만있는 그대로 나머지는 그냥 가서, 내 원하는 값을 반환하는 방법 중 하나를 강제로 시도 : 그래서, 나는 다음과 같은 코드를 사용했다. 이 시험에 어떻게 접근해야합니까?
현재 얻고있는 오류는 메서드에서 $this
인데,이 메서드는 스텁 된 개체로 처리합니다. ->setMethods()
에 나와
이 오류'정의되지 않은 메서드 SampleTest :: getBaseValue을 초래 하 ()'getBaseValue()는 내부적으로'multipliedValue()'함수에 의해 호출되기 때문에. –
당신 말이 맞아요. 나는 이것을하는 데 실수를했다. 매우 감사합니다 –