2
我测试使用PHPUnit的方法,我有以下情形:测试调用该方法有一些参数,等等
- 法“的setParameter”被称为次
- 方法的未知量'setParameter'被调用不同类型的参数
- 各种参数之间的方法'setParameter'务必用一组参数调用。
我试着做这种方式:
$mandatoryParameters = array('param1', 'param2', 'param3');
foreach ($mandatoryParameters as $parameter) {
$class->expects($this->once())
->method('setParameter')
->with($parameter);
}
不幸的是,测试方法之前被调用,这些参数它被称为与其它参数也因失败。我得到的错误是:
Parameter 0 for invocation Namespace\Class::setParameter('random_param', 'random_value')
does not match expected value.
Failed asserting that two strings are equal.
如果我不知道该功能会究竟有多少次被称为有我无法检查它是否会在其他调用中与这些参数一起调用? – spdionis
你不需要知道函数会被调用多少次,但是你确实需要知道它会在哪一点。这对每次测试都应该是一样的,所以你需要确定这一点。虽然进行测试,但您还应该确切知道该函数将被调用的次数,因为您应该可以控制整个测试系统,并且可以向其提供能够为您提供具有一致参数的已知数量的调用的数据。 – Schleis