0
私はチュートリアルを読んで練習しています:http://teropa.info/blog/2015/09/10/full-stack-redux-tutorial.html しかし、私は減速テストに合格できませんでした。それから、私はその理由を見つけるために新しいテストをしました。ここでマップのプロパティを設定した後の混乱
はtest.js(チャイとモカ)です:
import {expect} from 'chai';
import {List, Map, fromJS} from 'immutable';
describe('set',() => {
it('sets map\'s property',() => {
const state = Map();
const action = {type: 'SET_ENTRIES', entries: ['Trainspotting']};
const nextState = state.set('entries', action.entries);
/*
expect(nextState).to.equal(Map({
entries: ['Trainspotting']
}));
*/
expect(nextState).to.equal(fromJS({
entries: ['Trainspotting']
}));
});
});
どちらの地図やfromJSを使用する "マップ" を選択した場合、テストは
を渡しません、それは示しています
AssertionError: expected 'Map { "entries": Trainspotting }' to equal 'Map { "entries": Trainspotting }'
+ expected - actual
"fromJS" を選択した場合、それは示しています
AssertionError: expected 'Map { "entries": Trainspotting }' to equal 'Map { "entries": List [ "Trainspotting" ] }'
+ expected - actual
-Map { "entries": Trainspotting }
+Map { "entries": List [ "Trainspotting" ] }
それは本当に混乱しています。それを動作させるには?
を試してみました。できます。しかし、なぜ?上記のチュートリアルが間違っているということですか? – Slimpothive
entry.set( 'entries'、action.entries)のようにエントリを設定すると、action.entriesは単純な配列であり、変更不可能なリストではありません。反対側では、それをfromJSと比較することはできません({ entries:['Trainspotting'] })。 エントリのListインスタンスを作成します。それはfromJSの力です。 –
それは理にかなっています。どうもありがとう! – Slimpothive