【问题标题】:PHPUnit - how to test sibling method calls?PHPUnit - 如何测试兄弟方法调用?
【发布时间】:2015-08-07 01:38:34
【问题描述】:

鉴于此代码:

public function someMethod($conditions)
{
    if(<expression>) {
        $this->methodA();
    } else {
        $this->methodB();
    }
}

methodA()methodB() 都产生间接输出,并且每个都包含在自己的单元测试中。我只是想测试someMethod() 根据各种条件调用适当的兄弟。

但是,我不知道如何模拟对象来测试它。

这是我尝试过的:

$mock = $this->getMockBuilder('\My\Class')
             ->disableOriginalConstructor()
             ->getMock();

$mock->expects($this->once())
     ->method('methodA');

$mock->someMethod(['some' => 'condition']);

但它会抛出这个错误

方法名称的预期失败等于调用 1 次。 方法预期调用1次,实际调用0次。

事实上,我知道这不是条件问题,因为我取出逻辑只是为了查看直接方法调用是否会通过测试,但事实并非如此。所以我认为我只是没有正确地模拟对象。

【问题讨论】:

    标签: unit-testing phpunit


    【解决方案1】:

    看起来我只是在我的模拟中错过了setMethods(['methodA']) 调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-28
      • 2018-06-27
      • 2015-03-20
      • 1970-01-01
      • 2017-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多