2016-12-16 41 views
0

我想測試我的反應減速與薛寶釵:爲什麼斷言不相等?

const initialState = { 
    cartOpen: false 
} 

const Cart = (state = initialState, action) => { 
    switch (action.type) { 

     case 'INITIALIZE_CART': 
      return 1 

     default: 
      return state 
    } 
} 

這是我的測試:

it('should return the initial state',() => { 
    expect(
     reducer(undefined, {}) 
    ).to.equal(
     { cartOpen: false } 
    ) 
}) 

我不明白爲什麼我得到這個錯誤:

cart reducer should return the initial state:              

AssertionError: expected { cartOpen: false } to equal { cartOpen: false }       
+ expected - actual                     


at Context.<anonymous> (C:/Usersdevelop_5dec/foss/foss-frontend/test/cart.spec.js:11:14) 

看起來像預期和實際是一樣的?我怎樣才能解決這個問題?

回答

0

它們是在兩個不同的地方創建的兩個不同的對象引用。 .equal()使用===在引擎蓋下,它比較參考。

如果你使用的柴,你可以通過「這麼多」使用.deep

expect(
    reducer(undefined, {}) 
).to.deep.equal((
    { cartOpen: false } 
) 
+0

真棒感謝的人 –

+1

節拍。我打算建議類似的,但替代eql:http://chaijs.com/api/bdd/#method_eql – Chris

相關問題