如果我有一个与 B 类交互的 A 类,那么在我的测试中我想模拟 B 类,以便我可以单独测试 A 类。
这很容易在 PHPUnit 中使用"getMock('classname')"
.
我目前的问题是:如果class A
使用多个实例,class B
我无法模拟它,"getMock('B')"
因为如果多次调用它似乎"getMock"
不会返回多个实例,但总是相同的模拟class B
。
以下示例:
<?php
class A()
{
private class_b_1;
private class_b_2;
public function setClassB1(B $class_b)
{
$this->class_b_1 = $class_b;
}
public function setClassB2(B $class_b)
{
$this->class_b_2 = $class_b;
}
}
在我的测试中:
$mock_one_of_class_b = $this -> getMock('B');
$mock_two_of_class_b = $this -> getMock('B');
然后$mock_one_of_class_b
是与 相同的对象$mock_two_of_class_b
。
如何模拟一个类的多个实例PHPUnit
?
提前致谢!