ここにいくつかのコンテキストがあります。 私はES6で書かれたReactとImmutable.jsを使ってプロジェクトを進めています。 私はBabelとwebpackを使用しています。カルマで実行されたときにImmutable.jsを使用したモカテストが失敗しました
私はMocha、Chai、jsdomを使って単体テストを書いたので、ブラウザの外で実行することができました。
問題は、一部のコンポーネントが画像を必要とするようなものを使用していることです。 このようなものは、特定のローダーを介してwebpackによって処理されます。
端末でテストを実行すると、これらの不必要な要求のためにテストが失敗します。
カルマを使って(ブラウザの外でテストを実行できるようにしておく)、テストを実行する前にソースをコンパイルして、webpackの設定がイメージローダーを無視するようにしましたローダ)。
この時点で、テストはカルマを介して実行されていますが、端末を経由して実行されているときには失敗しているものもあります(テストの目的のために必要なものがある行についてコメントしました)。
失敗したテストはすべてImmutable.jsに関連しています。つまり、2つの不変オブジェクトの等価性をテストしようとしています。ここで
は、テストのexempleです:
it('handles SET_STATE',() => {
const initialState = Map();
const action = {
type : 'SET_STATE',
state : Map({
vote : Map({
pair : List.of('Trainspotting', '28 Days Later'),
tally : Map({ 'Trainspotting' : 1 })
})
})
};
const nextState = reducer(initialState, action);
expect(nextState).to.equal(fromJS({
vote: {
pair: ['Trainspotting', '28 Days Later'],
tally: { 'Trainspotting': 1 }
}
}));
});
障害はそのような何か与えます:
1) handles SET_STATE
reducer
AssertionError: expected { Object (size, _root, ...) } to equal { Object (size, _root, ...) }
at Context.<anonymous> (/Users/boris_louboff/Labs/VotingApp/voting-client/test/tests.bundle.js:36413:42 <- webpack:///test/reducer.spec.js:21:29)
不変に関連したものをテストしていない他のすべてのテストが合格しているが。
これを解決できるものがあれば、誰かがそれが素晴らしいと思いますか? ありがとうございます。
は[OK]を、この誤解を招くような情報については申し訳ありません...私は完全にあった忘れてしまった何かがある しかし、私はあなたがコマンドとモカを使用して実行できるようにファイルのすべての私のテストでこれを含める方法を見つけることができませんでしたNode environnement ... chai-immutableモジュールで動作しています!!!それは期待を働かせる仕事をしていた!!!私はそれをカルマのバージョンで動作させようとしています... – websilone