【发布时间】:2012-06-12 19:45:54
【问题描述】:
我正在为使用 PHPUnit 的方法编写单元测试。我正在测试的方法在同一个对象上调用相同的方法 3 次,但使用不同的参数集。我的问题类似于here和here提出的问题
其他帖子中提出的问题与只接受一个参数的模拟方法有关。
但是,我的方法需要多个参数,我需要这样的东西:
$mock->expects($this->exactly(3))
->method('MyMockedMethod')
->with(
$this->logicalOr(
$this->equalTo($arg1, $arg2, arg3....argNb),
$this->equalTo($arg1b, $arg2b, arg3b....argNb),
$this->equalTo($arg1c, $arg2c, arg3c....argNc)
)
);
此代码不起作用,因为equalTo() 仅验证一个参数。给它多个参数会引发异常:
PHPUnit_Framework_Constraint_IsEqual::__construct() 的参数 #2 必须是数字
有没有办法为具有多个参数的方法进行logicalOr 模拟?
提前致谢。
【问题讨论】:
-
你还没有提出一个问题(用真实的话)。此外,您还没有解释为什么您专门添加的代码对您不起作用。这听起来可能是多余的,但这些信息将有助于使您的问题更清晰,更容易提供答案。我们无法调查你的大脑。
-
@Thomas:我是来问这个exact问题的,所以我更新了你的问题并点赞了你的问题,希望你不要介意。 (现在我们玩等待游戏……)
-
@drHannibalLecter 谢谢