私はSinon
Enzyme
をテスト用に使用しています。私はオブジェクトの配列を取り、それを新しい別の配列に変換する関数を持っています。Sinon:テスト関数戻り値
getContainersByHostId(data) {
return _.chain(data)
.groupBy('hostId')
.toPairs()
.map(currentItem => _.zipObject(['hostId', 'containers'], currentItem))
.value();
}
のArgs:
const containers = [{
id: 'c_01',
hostId: 'h_01',
hostIp: '192.168.1.0',
name: 'Some Container'
}];
結果:
[{hostId: 'h_01',
containers: [{
hostId: 'h_01',
ip: '192.168.1.0',
id: 'c_01',
name: 'Some Container'
}]}];
これが正常に動作します。しかし、私が直面している問題はユニットテストです。だから私はこれを持っています。
const containers = [{
id: 'c_01',
hostId: 'h_01',
hostIp: '192.168.1.0',
name: 'Indigo Container'
}];
const wrapper = shallow(<Groups {...props} />);
const instance = wrapper.instance();
sandbox.stub(instance, 'getContainersByHostId');
instance.getContainersByHostId(containers);
expect(instance.getContainersByHostId.calledWith(containers)).to.equal(true);
});
argsが新しい配列と等しいかどうかをテストするにはどうすればよいですか?
更新:
私はreturnValue
を試してみましたが、それは偽の私を与え、私はそれが本当に戻って何をチェックするためにすべての可能な解決策を見つけることができませんでした。
正確に何をアサーションしますか?私は2つの配列、1つは入力、2つ目は期待される出力を持つべきだと思います。だからあなたは、その入力を使って 'getContainersByHostId'を呼び出すと、期待される出力を返さなければならないと主張します。これは達成したいことですか? –
それは私が主張したいことです。しかし、出力配列に対してそれを宣言すると、私には未定義が与えられます。私はそれをどのように実現できるかの例を書くことができますか?たぶん私は何か間違ったことをしています。私も私の質問を編集します – Umair
@LazarevAlexandr – Umair