カートのための私の還元レデューサーの単体テストを作成しようとしています。これは、アイテムは、アイテムのプロパティに追加され、減速機です:どのように減速機のユニットテストの作業を取得するには?
const initialState = {
items: [],
cartOpen: false,
newMonthlyCost: 0,
currentMonthlyCost: 0,
showNextButton: false,
orderConfirmed: false
}
const Cart = (state = initialState, action) => {
switch (action.type) {
case 'ADD_TO_CART':
return Object.assign({}, state,
{
items: [...state.items,action.data]
});
default:
return state
}
}
export default Cart
マイチャイユニットテストは、次のようになります。
import reducer from './../../foss-frontend/app/reducers/cart.js'
import {expect} from 'chai';
describe('cart reducer',() => {
it('should handle ADD_TO_CART',() => {
expect(
reducer([], {
type: 'ADD_TO_CART',
data: {
id: 12, price: 2332
}
})
).to.deep.equal({items: [{id: 124, price: 2332}]})
})
})
は、なぜ私はこのエラーを取得していますし、どのようにこの問題を解決するために?
エラー:
TypeError: Cannot convert undefined or null to object
at Function.from (native)
at _toConsumableArray (app\reducers\cart.js:7:182)
あなたのコードはOKに見える -
state.itemsが存在することを確認してください。私はバグがあなたが投稿しなかった部分にあると思う。あなたは、減速器とテストのすべてのコードを投稿できますか? –
hi Artem –
'.to.deep.equal({items:{id:124、price:2332}})'は '.to.deep.equal({items:[{id:124、price: 2332}]}) ' –