2

レストコールユニットテストのために MockMVC を練習しています。ブール値をテストして、結果が true か false かに関係なく、テストに合格する必要がある場合は、次のように試しました。

mockMvc.perform(get("/student/{Id}", 1L)).
.andExpect(status().isOk())
.andExpect(jsonPath("$.isPass", is(true  || false)));

また、6つの値を持つリストがあります。リストにはあらゆる種類のメソッドが含まれています。

.andExpect(jsonPath("$.subjectList", hasSize(5)))
.andExpect(jsonPath("$.subjectList.name", Matchers.contains("English", "Hindi", "France", "Tamil", "Bengali"))

任意の提案をお願いします!!

4

1 に答える 1

4

hamcrest AnyOf 論理マッチャーの使用をお勧めします

チュートリアルを作成する:

anyOf - いずれかのマッチャーが一致する場合に一致し、短絡 (Java || など)

だからあなたの場合:

import static org.hamcrest.core.AnyOf.*;

mockMvc.perform(get("/student/{Id}", 1L)).
.andExpect(status().isOk())
.andExpect(jsonPath("$.isPass", anyOf(is(false),is(true))));
.andExpect(jsonPath("$.subjectList.name", anyOf(is("English"),is("Hindi")…)));

Junit といくつかのモック ライブラリで hamcrest を使用するのは難しい場合があります。

JUnit と Hamcrest を一緒に使用するには?

于 2015-12-01T11:16:27.223 に答える