当我为webflux
应用程序编写一些测试时。我尝试在mutateWith(mockUser().password("password"))
中通过WebTestClient
添加凭据,但却导致NPE被抛出。
我使用bindToServer
将测试客户端连接到正在运行的远程API,并尝试使用mutateWith(mockUser().password("password"))
为请求添加基本身份验证。它在测试时会抛出一个NPE。
答案 0 :(得分:2)
在我探索mockUser
的源代码后,它需要一个 MockServer 环境来运行测试,但它在我的样本中作为结束2运行。
将mutateWith(mockUser().password("password"))
更改为.mutate().filter(basicAuthentication("user", "password")).build()
,NPE消失了。
希望这对你有帮助。
@Test
public void deletingPostsWhenUserCredentialsThenForbidden_mutateWith()
throws Exception {
this.rest
.mutate().filter(basicAuthentication("user", "password")).build()
.delete()
.uri("/posts/1")
.exchange()
.expectStatus().is4xxClientError()
.expectBody().isEmpty();
}