我想在PHPUnit中通过自定义值比较一个接口。遗憾的是,内置方法还不够,我想扩展它们以添加我自己的比较。
我可以从docs告诉我,有一种标准方法可以实现新的断言。但是,从源代码一眼就可以看出,你可以编写一个自定义比较器并在某处使用register来使用它。
注册自定义比较器的位置(以及如何)?
答案 0 :(得分:1)
这实际上非常容易。
您可以在来源中看到comparator的示例。
要添加自己的一个,请使用SebastianBergmann\Comparator\Factory
的单例实例在PHPUnit bootstrap.php
文件中注册比较器。
use SebastianBergmann\Comparator\Factory;
$comparatorFactory = Factory::getInstance();
$comparatorFactory->register(new EquivalentComparator());
此后,在测试用例中对$this->assertEquals
的任何调用都将使用比较器。
比较器检查它是否对值有效,这使它非常灵活。