2016-01-30 82 views
0

我目前正在查詢包含類別:foo或bar的數據庫文檔。但是我發現很難測試這個。Chai數組包含任何成員?

這裏是陣列的樣品,我想測試:

var array = [ 
    {category: ['foo'] }, 
    {category: ['foo', 'bar'] }, 
    {category: ['foo'] } 
]; 

expect(array[0].category).to.include.any.members(['foo', 'bar']); 

但是它似乎並沒有正常工作,它看起來爲每個成員存在。 我想測試能夠檢查數組的每個元素,以包括富或OR欄。

回答

1

似乎沒有or方法或類似的東西在柴。

所以我認爲你必須遍歷您的數組是這樣的:

var array = [ 
    {category: ['foo'] }, 
    {category: ['foo', 'bar'] }, 
    {category: ['foo'] } 
]; 

array.forEach(function(item) { 
    expect(item).to.have.any.keys('category'); 

    item.category.forEach(function(catItem) { 
     expect(catItem).to.match(/foo|bar/); 
    }); 
}); 
+0

好極了!我認爲我可能需要最終訴諸正則表達式。 – StefanM

相關問題