[英]spring boot WebTestClient full integration test
我想使用WebTestClient執行完整的集成測試。
我的測試很簡單:
@Test
public void createPostTest() {
Post post = new Post("someUserId", "Kim", "Gysen",
"Some text", "http://zwoop.be/imagenr",
"googlePlaceId", "googlePlaceName", new Geolocation(50, 50));
webTestClient.post().uri(BASE_URI)
.contentType(MediaType.APPLICATION_JSON_UTF8)
.accept(MediaType.APPLICATION_JSON_UTF8)
.body(Mono.just(post), Post.class)
.exchange()
.expectStatus().isCreated()
.expectHeader().contentType(MediaType.APPLICATION_JSON_UTF8)
.expectBody()
.jsonPath("$._id").isNotEmpty()
.jsonPath("$.userId").isEqualTo(post.getUserId())
.jsonPath("$.firstName").isEqualTo(post.getFirstName())
.jsonPath("$.lastName").isEqualTo(post.getLastName())
.jsonPath("$.postText").isEqualTo(post.getPostText())
.jsonPath("$.postImageUri").isEqualTo(post.getPostImageUri())
.jsonPath("$.location.latitude").isEqualTo(post.getLocation().getX())
.jsonPath("$.location.longitude").isEqualTo(post.getLocation().getY());
// Verify whether the post has properly been stored in db / cache
}
我的問題是是否有辦法:
以下似乎有效:
FluxExchangeResult<Post> res = webTestClient.post().uri(BASE_URI)
.contentType(MediaType.APPLICATION_JSON_UTF8)
.accept(MediaType.APPLICATION_JSON_UTF8)
.body(Mono.just(post), Post.class)
.exchange()
.returnResult(Post.class);
Post retPost = res.getResponseBody().blockFirst();
這意味着以后我將不得不手動驗證結果。
如果您有更好的選擇,仍然歡迎您。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.