1
33
最干净的方法是使用新的断言方法扩展phpunit。但现在有个简单方法的想法。未测试代码,请验证: 应用程序中的某个位置:
在测试中:
|
2
159
你可以用 断言均等化 方法:在phpunit 7.5中加入。如果使用此方法比较数组,这些数组将由phpunit array comparator本身排序。 代码示例:
在旧版本的phpunit中,可以使用未记录的参数$canonicalize of 断言等于 方法。如果你通过 $canonicalize=真 你会得到同样的效果:
最新版本phpunit的数组比较器源代码: https://github.com/sebastianbergmann/comparator/blob/master/src/ArrayComparator.php#L46 |
3
34
我的问题是我有两个数组(数组键与我无关,只是值)。 例如,我想测试
内容(订单与我无关)与
所以我用了 array_diff . 最终结果是(如果数组相等,则差异将导致空数组)。请注意,差额是双向计算的(谢谢@beret,@gordonm)
对于更详细的错误消息(调试时),您也可以这样测试(谢谢@denilsons_):
旧版本中包含错误:
|
4
18
另一种可能性是:
|
5
14
简单助手方法
或者当数组不相等时需要更多的调试信息
|
6
7
如果数组是可排序的,我将在检查相等性之前对它们进行排序。如果没有,我会把它们转换成某种类型的集合,然后比较它们。 |
7
6
使用 array_diff() :
或2个断言(更容易阅读):
|
8
5
我们在测试中使用以下包装方法:
|
9
5
如果键是相同的,但顺序不对,这应该解决它。 您只需按照相同的顺序获取键并比较结果即可。
|
10
4
尽管您不关心订单,但考虑到这一点可能更容易: 尝试:
|
11
2
给定的解决方案并没有为我完成这项工作,因为我希望能够处理多维数组,并清楚地了解两个数组之间的区别。 这是我的职能
然后使用它
|
12
1
我编写了一些简单的代码,首先从多维数组中获取所有键:
然后测试它们的结构是否相同,不管键的顺序如何:
高温高压 |
13
0
如果值只是int或字符串,并且没有多个级别数组…. 为什么不把数组排序,把它们转换成字符串…
…然后比较字符串:
|
14
-1
如果只想测试数组的值,可以执行以下操作:
|
15
-3
另一个选择,好像你还没有足够的资金,就是合并
这样,您就独立于顺序,但仍然断言所有元素都存在。 |
Toma Tomov · 昨天工作的PHPUnit cahces功能 6 年前 |
user3574603 · 自制:如何安装PHPUnit 6.5? 6 年前 |
Lovelock · Laravel 5.6邮件假装功能? 6 年前 |
Kiren S · 如何确定PHPUnit模拟失败的原因? 6 年前 |
Dave Jones · 依赖注入使我的代码变得丑陋 6 年前 |