私のコンシューマサービスはプロバイダサービスにすべてのユーザのリストを尋ねますが、プロバイダは任意の順序付けリスト(これは問題ありません)で答えます。消費者側の協定執行はうまくいくように見えるが、プロバイダのサイトでそれを実行すると、例えばExpected "user1" but got "user3" at $.items[0].userName
と表示される。Pact.js - willRespondWith任意の順序付き配列
このさは、相互作用の抜粋です:
willRespondWith: {
status: 200,
headers: { "Content-Type": "application/json; charset=utf-8" },
body: {
items: [
{ userName: "user1" },
{ userName: "user2" },
{ userName: "user3" },
],
},
},
は戻された項目の順序を無視する方法はありますか?
さらに、私のモカテストは比較に影響を与えていないようです。私も両方の配列を注文しようとしましたが、何も助けませんでした。どちらも(相互作用とモカのテスト)はどのようにつながっていますか?
it("Should generate a list of users in the system", async function() {
await userServiceClient.getUsers()
.then((users) => {
expect(users).to.include.members(EXPECTED_USERS_ARRAY);
});
});
事前に感謝します。
名前の順序を比較して、正しいことを確認することのメリットを尋ねることはできますか? –
あなたが求めるすべてのユーザーがシステム内にいることを確認するだけです。ここではテストについて話しているので、それほど重要ではありません。そのような機能があるかどうかを知りたかっただけです。その後、以下に説明する方法よりもやや簡単になります。 – shellmann