phpunit 替换方法 return
phpunit replace the method return
这是我的代码。如何修改函数的 return 结果。
class Replace {
public function add($a){
// how can I replace $this->double($anyNum) return value
return $a + $this->double($a);
}
public function double($a){
return $a + $a;
}
}
class ReplaceTest extends PHPUnit_Framework_TestCase {
public function testadd(){
$replace = $this->getMock('Replace');
// I want to control the method's return,
//no matter what num passed to it from function add
$replace->expects($this->any())->method('double')->will($this->returnValue(15));
// this return null
$data = $replace->add(6);
// this is the expected result I want,
// and when I set the returnValue(21),I hope the expected result is 27
$this->assertEquals(21, $data);
}
}
如何修改我的代码,非常感谢。
如果指定,getMock() 的第二个参数会告诉 phpunit 要替换哪些方法。因此,在您的情况下:
$replace = $this->getMock('Replace',array('add'))
尽管在您给出的示例中,我建议不要模拟 Replace class,为 double() 方法添加一个测试就足够了,就像 double() 测试通过一样,您可以依赖根据该方法的结果。
这是我的代码。如何修改函数的 return 结果。
class Replace {
public function add($a){
// how can I replace $this->double($anyNum) return value
return $a + $this->double($a);
}
public function double($a){
return $a + $a;
}
}
class ReplaceTest extends PHPUnit_Framework_TestCase {
public function testadd(){
$replace = $this->getMock('Replace');
// I want to control the method's return,
//no matter what num passed to it from function add
$replace->expects($this->any())->method('double')->will($this->returnValue(15));
// this return null
$data = $replace->add(6);
// this is the expected result I want,
// and when I set the returnValue(21),I hope the expected result is 27
$this->assertEquals(21, $data);
}
}
如何修改我的代码,非常感谢。
如果指定,getMock() 的第二个参数会告诉 phpunit 要替换哪些方法。因此,在您的情况下:
$replace = $this->getMock('Replace',array('add'))
尽管在您给出的示例中,我建议不要模拟 Replace class,为 double() 方法添加一个测试就足够了,就像 double() 测试通过一样,您可以依赖根据该方法的结果。