2016-12-16 58 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

相关问题