Jestの.toHaveBeenCalledWith()
メソッドで関数に渡された引数をテストしようとすると、ImmutableJSライブラリを使用して不変のデータ構造で処理するとテストに失敗します。テストは、このようなメッセージで失敗します。不変のデータ構造体を使用すると、Jestモック関数の引数が一致しない
Expected mock function to have been called with:
[{"foo": true, "bar": "baz"}]
But it was called with:
[{"foo": true, "bar": "baz"}]
テストは次のようになります。
const expectedArgs = Map({
foo: true,
bar: 'baz'
});
const foo = jest.fn();
bar();
expect(foo).toHaveBeenCalledWith(expectedArgs);
そして、これと同様の機能:
const bar =() => {
const baz = Map({});
const bazModified = baz.set('foo', true).set('bar', 'baz');
foo(bazModified);
}
私は、if I気づいこの方法で引数を渡すと、すべて正常に動作します。
const bar =() => {
const baz = Map({
foo: true,
bar: 'baz'
});
foo(baz);
}
問題は、これが私の関数のロジックを大幅に単純化し、オブジェクトを構築するために.setを使用する必要があることです。 .setを使ったアプローチが正しく評価されない理由を知っている人はいますか?