代码之家  ›  专栏  ›  技术社区  ›  Jay Bienvenu

PHPUnit:assertThat()增量断言计数吗?

  •  0
  • Jay Bienvenu  · 技术社区  · 8 年前

    我有一个自定义断言,它不会增加断言计数器。我运行(>);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);
    }
    

    这个 PHPUnit manual page 对于 assertThat() 不指示是否增加断言计数,搜索进一步的文档时没有发现任何结果。

    要使此自定义断言作为一个断言计数并正确递增断言计数,我需要做什么?

    1 回复  |  直到 8 年前
        1
  •  1
  •   gontrollez ciruvan    8 年前

    这个 Constraint 类实现 Countable . 所需的 count 方法将返回在计算约束时将添加到计数器的断言数:

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

    您的约束条件 计数 方法应至少返回 1 为了统计断言。检查是否返回 0 相反

    推荐文章