【问题标题】:PHPUnit: Does assertThat() increment assertion count?PHPUnit:assertThat() 是否增加断言计数?
【发布时间】:2018-01-02 15:13:30
【问题描述】:

我有一个不增加断言计数器的自定义断言。我在此代码上运行 >1900 个断言,最终断言计数为零。我知道它正在运行断言,因为我可以让它失败。但无论它是否失败,它都声称运行了零个断言。

这是我的自定义断言的定义:

protected function assertMethodResult($class_name, $method_name, $arguments, $expected, $message='')
{
    $condition = new MyConstraint; // proprietary code; extension of PHPUnit_Framework_Constraint
    self::assertThat(array('class_name'=>$class_name, 'method_name'=>$method_name, 'arguments'=>$arguments, 'expected'=>$expected), $condition, $message);
}

assertThat()PHPUnit manual page 没有表明它是否增加了断言计数,并且搜索进一步的文档没有发现任何结果。

我需要做什么才能使这个自定义断言计为一个断言并正确增加断言计数?

【问题讨论】:

    标签: unit-testing phpunit


    【解决方案1】:

    Constraint 类实现了Countable。所需的count 方法将返回在评估约束时将添加到计数器的断言数:

    https://github.com/sebastianbergmann/phpunit/blob/5.7.26/src/Framework/Assert.php#L2056

    您的约束count 方法应至少返回1 才能计算断言。检查它是否返回0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-07
      • 1970-01-01
      • 2012-08-27
      • 1970-01-01
      • 1970-01-01
      • 2011-02-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多