断言:
$chain->expects($this->once())
->method('addMethodCall')
->with(
'addOptionsProvider',
array(
$this->isInstanceOf('Symfony\Component\DependencyInjection\Reference'),
$this->equalTo(7)
)
);
$chain
实际上是 的模拟对象Definition
,这是我要测试的代码:
$definition->addMethodCall(
'addOptionsProvider',
array(new Reference($id), $priority)
);
我正在开始 PHPUnit,所以我真的不知道我错过了什么。我发现断言论点真的很难理解。我已经包含了一个图像,其中包含断言和实际参数之间的视觉差异。
PHPUnit_Framework_ExpectationFailedException :方法名称的预期失败等于调用 1 次时的参数 1 调用 Symfony\Component\DependencyInjection\Definition::addMethodCall('addOptionsProvider', Array (...)) 与预期值不匹配。
编辑:实际上,我最终得到了这个:
$chain->expects($this->once())
->method('addMethodCall')
->with(
$this->identicalTo('addOptionsProvider'),
$this->logicalAnd(
$this->isType('array'),
$this->arrayHasKey(0),
$this->arrayHasKey(1)
)
);
但是我不能“进入”数组值以进行进一步的断言!