2017-09-21 7 views
0

私のコンシューマサービスはプロバイダサービスにすべてのユーザのリストを尋ねますが、プロバイダは任意の順序付けリスト(これは問題ありません)で答えます。消費者側の協定執行はうまくいくように見えるが、プロバイダのサイトでそれを実行すると、例えば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); 
       }); 
}); 

事前に感謝します。

+0

名前の順序を比較して、正しいことを確認することのメリットを尋ねることはできますか? –

+0

あなたが求めるすべてのユーザーがシステム内にいることを確認するだけです。ここではテストについて話しているので、それほど重要ではありません。そのような機能があるかどうかを知りたかっただけです。その後、以下に説明する方法よりもやや簡単になります。 – shellmann

答えて

1

この機能は現在実装されていませんが、Pact.eachLikeを使用することをお勧めします。フィールドの実際の値はめったに重要ではありません。

+0

Bethに感謝します。私はすでにドキュメントでそれを見て、それを実装し、それはうまく動作します。 – shellmann

関連する問題