私は、オブジェクトのリストを返すMockMVCテストを持っています。私はこの特定のプロパティが正しく設定されていることを確認しようとしています。どのようにしてMockMvc Spring Testのオブジェクトリストに一致するのですか?
しかし、私はそれを明示的に追加することを除いて、何らかの方法で一致させることはできません。 KeyPairはキー値を持つ単純なペアクラスで、マップのエントリによく似ています。私はいくつかのオプションに
を試してみました
List<KeyPair<String, String>> keyList = User.getContactDetails()
.entrySet()
.stream()
.map(e -> new KeyPair<String, String>(e))
.collect(Collectors.toList());
performQueryWithHeaders(get("https://stackoverflow.com/users/1"))
.andExpect(status().isOk())
.andExpect(jsonPath("$.contactDetails" ,
is(keyList)));
される(キーリスト)
は(keyList.toString())である
は(Gson.toJson(キーリスト)
されています(mapper.writeValueAsString(keyList)(jackson serialization)
ただし、
JSON path "$.contactDetails"
Expected: is "[{\"key\":\"example title\",\"value\":\"example title\"}, {\"key\":\"another example\",\"value\":\"another example\"},{\"key\":\"etc \",\"value\":\"etc \"}]"
but: was <[{"key":"example title","value":"example title"},{"key":"another example","value":"another example"},{"key":"etc ","value":"etc "}]>
JSON path "$.contactDetails"
Expected: is <[KeyPair(key=example title, value=example title), KeyPair(key=another example, value=another example), KeyPair(key=etc , value=etc)]>
but: was <[{"key":"example title","value":"example title"},{"key":"another example","value":"another example"},{"key":"etc ","value":"etc "}]>
JSON path "$.contactDetails"
Expected: is "[KeyPair(key=example title, value=example title), KeyPair(key=another example, value=another example), KeyPair(key=etc , value=etc)]"
but: was <[{"key":"example title","value":"example title"},{"key":"another example","value":"another example"},{"key":"etc ","value":"etc "}]>
JSON path "$.contactDetails"
Expected: is "[{\"key\":\"example title\",\"value\":\"example title\"},{\"key\":\"another example\",\"value\":\"another example\"},{\"key\":\"etc \",\"value\":\"etc \"}]"
but: was <[{"key":"example title","value":"example title"},{"key":"another example","value":"another example"},{"key":"etc ","value":"etc "}]>
私はテストでjsonを少しゴミ/壊れやすいように書いたくありません。それで誰もそれをマップする方法を知っていますか?
私は完全にはどのように必要な文字列に変更するか分からない。 私は.toStringを試してから、gson.toJsonとjacksonオブジェクトマッパーの両方を使用してjsonにシリアライズしましたが、まだ正しくマッピングされていません。 – user1628284
@ user1628284更新 –