2013-04-18 55 views
2

我試圖使用Flashbuilder 4.7環境附帶的Hamcrest匹配器。我有2個數組,數組A和數組B.我想要做的是確保所有B的成員都在A中找到,而不管順序如何。我正在尋找這樣的作品。AS3 Hamcrest - 聲明一個數組包含所有其他數組

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',但是我不能很好地掌握語法。

回答

2

這應該工作:

assertThat(a, hasItems.apply(null, b)) 

當然,這種檢查在b所有項目都包含在a,這意味着a可以包含其他額外的價值。如果你想斷言ab也具有相同數量的值,那麼assertEquals(a.length, b.length)對我來說沒問題。

這裏的訣竅是使用Function.apply(),因爲hasItems()不指望數組,而是...rest樣式參數。

作爲一個附註,allOf()旨在爲測試值創建一個匹配列表。

相關問題