我在结束2结束测试中遇到的另一个问题是,设置无效凭据会导致发送请求被阻止,直到超时为止。
@Test
public void savingPostsWhenInvalidCredentialsThenUnauthorized() throws Exception {
this.rest
.post()
.uri("/posts")
.attributes(invalidCredentials())
.body(BodyInserters.fromObject(Post.builder().title("title test").content("content test").build()))
.exchange()
.expectStatus().isUnauthorized()
.expectBody().isEmpty();
}
另一种情况是,如果用户没有权限,也会导致请求被阻止。
@Test
public void deletingPostsWhenUserCredentialsThenForbidden_mutateWith() throws Exception {
this.rest
.mutate().filter(basicAuthentication("user", "password")).build()
.delete()
.uri("/posts/1")
.exchange()
.expectStatus().is4xxClientError()
.expectBody().isEmpty();
}
我在此示例中使用Reactor Netty作为运行时,类似的测试在ApplicationTests
(在模拟环境中使用bindToApplicationContext
)中传递,在IntegrationTests
中失败(使用了{2}结束测试中的bindToServer
。