如何在phpunit中添加自定义约束?

时间:2018-05-20 20:55:57

标签: php phpunit

我想在PHPUnit中通过自定义值比较一个接口。遗憾的是,内置方法还不够,我想扩展它们以添加我自己的比较。

我可以从docs告诉我,有一种标准方法可以实现新的断言。但是,从源代码一眼就可以看出,你可以编写一个自定义比较器并在某处使用register来使用它。

注册自定义比较器的位置(以及如何)?

1 个答案:

答案 0 :(得分:1)

这实际上非常容易。

您可以在来源中看到comparator的示例。

要添加自己的一个,请使用SebastianBergmann\Comparator\Factory的单例实例在PHPUnit bootstrap.php文件中注册比较器。

use SebastianBergmann\Comparator\Factory;

$comparatorFactory = Factory::getInstance();
$comparatorFactory->register(new EquivalentComparator());

此后,在测试用例中对$this->assertEquals的任何调用都将使用比较器。

比较器检查它是否对值有效,这使它非常灵活。