我正在尝试使用 Flashbuilder 4.7 环境附带的 Hamcrest 匹配器。我有 2 个数组,数组 A 和数组 B。我想要做的是确保在 A 中找到 B 的所有成员,无论顺序如何。我正在寻找类似这样工作的东西。
var a:Array = new Array( 1, 2, 3, 4);
var b:Array = new Array( 1, 2, 3, 4 );
//Both arrays contain the same values so this should
//return true
assertThat( a , hasEachAndEveryLastOneInsideOfIt(b));
现在我已经尝试过“allOf”和“hasItems”,但我不太能掌握语法。
最佳答案
这应该有效:
assertThat(a, hasItems.apply(null, b))
当然,这会检查 b
中的所有项目是否都包含在 a
中,这意味着 a
可以包含其他附加值。如果您想断言 a
和 b
也具有相同数量的值,则 assertEquals(a.length, b.length)
为我觉得很好。
这里的技巧是使用 Function.apply()
因为 hasItems()
不需要数组,而是 ...rest
样式论据。
顺便说一句,allOf()
旨在为测试值创建匹配器列表。
关于actionscript-3 - AS3 Hamcrest - 断言一个数组包含另一个数组的全部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16072884/