【发布时间】:2015-06-12 13:18:52
【问题描述】:
类:
class TestMe
{
public function m1 (array &$a)
{
}
public function m2 (array &$a)
{
}
public function methodd()
{
$a = array();
$this->m1 ($a);
$this->m2 ($a);
return $a;
}
}
测试:
class X extends PHPUnit_Framework_TestCase
{
public function testMethod()
{
$mock = $this->getMock('TestMe', array('m1','m2'));
$mock->expects($this->once())->method('m1')->with(array())->willReturnCallback(function (&$x) { $x['a'] = 1; });
$mock->expects($this->once())->method('m2')->with(array('a' => 1))->willReturnCallback(function (&$x) { $x['b'] = 2; });
$x = $mock->methodd();
$this->assertEquals (array('a' => 1, 'b' => 2), $x);
}
}
不知何故失败了:
有 1 次失败:
1) X::testMethod 方法名称的预期失败等于调用 1 次。 调用 TestMe::m1(Array (...)) 的参数 0 与预期值不匹配。 断言两个数组相等时失败。 - - 预期的 +++ 实际 @@@@ 大批 ( + 'a' => 1 + 'b' => 2 )
失败! 测试:1,断言:2,失败:1。
我不知道它会是什么。换句话说,我想修改一个“引用”参数,并检查它:)
【问题讨论】: