【发布时间】:2018-02-21 20:33:14
【问题描述】:
我开始使用 PHPUnit 来测试我的代码,但我在理解双重测试方面遇到了一些问题。
我尝试存根一个类方法 b 以在另一个方法被调用时返回 true 而不是通常的行为 (false)
我有这样的代码
class MyClass {
function a()
{
return $this->b();
}
function b()
{
return false;
}
}
class MyClassTest extends TestCase
{
function testAThrowStubB()
{
$myClassStub = $this->getMockBuilder('\MyClass')
->getMock();
$myClassStub->expects($this->any())
->method('b')
->willReturn(true);
// this assert will work
$this->assertTrue($myClassStub->b());
// this assert will fail
$this->assertTrue($myClassStub->a());
}
}
我认为我的第二个断言会起作用,但事实并非如此。我错了,这不可能吗?还有另一种方法可以测试依赖于另一个覆盖其行为的函数吗?
谢谢
【问题讨论】: