[英]How to document REST services with Spring REST Docs that return a response conditionally?
我有一个REST服务,每个资源都有一个访问限制。 假设我有以下服务:
GET / record / {recordId}
定义每个记录的访问计数,当达到限制时,它返回一个异常。
我编写了一个集成测试,创建访问限制为5的记录,然后创建一个通过mockMvc发送请求的循环。
当我查看Spring REST Docs中的示例时,我发现在测试之后添加了.andDo(...),它为测试创建了片段。 我担心它会覆盖同一个测试的片段。 我想记录资源是否具有每个resourceId的访问限制,并在资源可访问和达到访问限制时提供示例。
我是否应该为这些案件使用2个文件ID(见下文)? 这是正确的方法吗?
@Test
public void testWithLimit(final String recordId, final String value, final int limit) throws Exception {
for (int i = 0; i < limit; i++) {
final ResultActions test = mockMvc.perform(get("/record/" + recordId));
if (i < limit) {
test.andExpect(status().isFound())
.andExpect(jsonValue("$.value").exists())
.andDo(document("resource-accessible"));
} else {
test.andExpect(status().isGone())
.andExpect(validateException(RecordLimitExceededException.class))
.andDo(document("resource-access-limit-reached"));
}
}
}
是的,对于这两种情况,我肯定会使用两种不同的文档ID,这样您就可以获得一组代码片段。
这没有必要,但您可能还想考虑仅在循环中调用文档两次:一次是第一次调用将成功,然后一次调用最终调用,当您预期达到限制时。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.