gpt4 book ai didi

phpunit 数组中的任何匹配器

转载 作者:行者123 更新时间:2023-11-28 20:52:47 27 4
gpt4 key购买 nike

我有一个函数,它在处理完记录后返回一个记录数组。预期的返回值看起来像这样 -

[
[....]
['Name', 'Quantity', 'Tags', 'Price', 'Total', 'Autogenerated Value']
[....]
[....]
]

Autogenerate Value 字段可以是动态生成的任何内容。

目前我正在尝试使用assertEquals 方法,但每次自动生成的值都会不同。我可以在这里使用类似 anything() 的匹配器吗?

我真的不想编写自己的断言函数来迭代预期值并使用 assertArraySubset 断言

最佳答案

这还不可能,但您可以扩展 PHPUnit 来评估数组中的约束:

  • 像这样编写一个自定义的比较器实现

    class ConstraintComparator extends SebastianBergmann\Comparator
    {
    public function accepts($expected, $actual)
    {
    return $expected instanceof \PHPUnit_Framework_Constraint;
    }
    public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false)
    {
    $expected->evaluate($actual);
    }
  • 在您的 Bootstrap 文件中添加比较器:

    SebastianBergmann\Comparator\Factory::getInstance()->register(new ConstraintComparator);

现在 PHPUnit 应该评估约束,而不是在它们出现的任何地方进行比较。

关于phpunit 数组中的任何匹配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39324680/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com