我很难弄清楚如何在spring mvc的JSON文档响应中AssertjsonPath。也许有一个比使用jsonPath更好的方法来完成这个特定的场景。我想验证链接数组有一个rel项“self”,并且“self”对象的“href”属性也有一个等于“/"的“href”属性。JSON响应如下所示:
{
"links":[
{
"rel":[
"self"
],
"href":"/"
},
{
"rel":[
"next"
],
"href":"/1"
}
]
}
我尝试了这个方法,我可以看到它有rel [0]有self,但是我不希望依赖于self在links数组和rel数组中的位置,而是实际测试在links[rel][self]处的href是什么,是“/",有什么想法吗?
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
mockMvc = MockMvcBuilders.standaloneSetup(welcomeController).build();
}
@Test
public void givenRootUrl_thenReturnLinkToSelf() throws Exception {
mockMvc.perform(get("/")).andDo(print()).andExpect(status().isOk())
.andExpect(jsonPath("$.links[0].rel[0].", is("self")));
}
4条答案
按热度按时间91zkwejq1#
添加几个和Expect方法怎么样?类似于:
4smxwvx52#
如果不想硬编码数组索引值,我猜您可以这样做
9vw9lbht3#
Accepted answer看起来不错,但是我不熟悉Junit4,因此我将在这里添加如何使用Junit5测试典型场景。
我将在这里添加静态导入(如果是初学者),因为当我第一次工作的时候,我必须弄清楚在几个导入中有哪些导入。
希望这对某些人有帮助。尤其是单元测试新手:)
gr8qqesn4#
您可以尝试: