php - 在我的单元测试 中,Symfony模拟特定的方法

  显示原文与译文双语对照的内容

我在试图模拟服务以 单元测试 时遇到问题。

在我的测试课上


 $mock = $this->getMock('MyClass');
 $mock->expects($this->any())->method('method_2')->will($this->returnValue('fake_value'));

在我的服务中,method_2() 调用另一个方法( 让我们假定为英镑')

我想只对 method_1() 需要模拟 method_2() 但是当我运行这个测试时,method_1() 已经返回null了。

你知道为什么我已经getting了?

时间: 作者:

看看 getMock() helper 签名,它允许你将一个方法作为第二个参数传递,然后模仿并返回( 除非你在每个方法中都定义了该方法,否则返回)

在你的情况下,所有方法都被仿真并返回除了强制返回值的method_2() 外的null

请再试一次


$mock = $this->getMock('MyClass');


$mock = $this->getMock('MyClass', array('method_2'));

作者:
...