这是我的函数等待phpunit的测试:
<?php
class Dog
{
public function born()
{
$a = new Action();
$rs = $a->talk();
return $rs;
}
}
类Action是:
class Action
{
public function talk()
{
return "true";
}
}
测试功能是:
public function testStub()
{
$stub = $this->getMockBuilder('Action')
->getMock();
$stub->method('talk')
->willReturn('false');
var_dump($stub->talk()); // "false"
$dog = new Dog();
//[How can the born method invoke the stub method ?]
var_dump($dog->born()); // "true" [I think it should be "false",but it isn't]
}
现在,我如何使用存根类来替换Action类?
感谢您的帮助。
答案 0 :(得分:1)
当前编写代码的方式不能用测试double替换Action
。代码需要重构,以便您可以注入Action
个实例。然后,您可以使用测试双精度而不是真正的Action
实例。