如何使用 Spring 的 WebTestClient 在 Kotlin 中检查字符串?
How to use Spring's WebTestClient to check for a string in Kotlin?
我正在尝试使用 WebTestClient 检查 returns 字符串的控制器。但由于某种原因,我得到了一个错误。
我使用 Kotlin,所以我尝试应用我找到的 Java 示例,但我不知道如何正确地做。我错过了什么?
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class HelloResourceIT {
@Test
fun shouldReturnGreeting(@Autowired webClient: WebTestClient) {
webClient.get()
.uri("/hello/Foo")
.accept(MediaType.TEXT_PLAIN)
.exchange()
.expectStatus()
.isOk()
.expectBody(String::class.java)
.isEqualTo<Nothing>("Hello Foo!")
}
}
当我尝试使用 String
或 java.lang.String
而不是 Nothing
时,我收到错误消息:
Type argument is not within its bounds.
Expected: Nothing!
Found:String!
当我使用 Nothing
时,我得到了 NPE。
已经有 但我使用的是特定类型。字符串在这里似乎不起作用。我缺少什么?
您似乎没有使用被确定为解决方法的扩展函数。要使用它,请尝试按如下方式更新测试的最后两行:
webClient.get()
.uri("/hello/Foo")
.accept(MediaType.TEXT_PLAIN)
.exchange()
.expectStatus()
.isOk()
.expectBody<String>()
.isEqualTo("Hello Foo!")
似乎工作正常。
供参考:
我正在尝试使用 WebTestClient 检查 returns 字符串的控制器。但由于某种原因,我得到了一个错误。
我使用 Kotlin,所以我尝试应用我找到的 Java 示例,但我不知道如何正确地做。我错过了什么?
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class HelloResourceIT {
@Test
fun shouldReturnGreeting(@Autowired webClient: WebTestClient) {
webClient.get()
.uri("/hello/Foo")
.accept(MediaType.TEXT_PLAIN)
.exchange()
.expectStatus()
.isOk()
.expectBody(String::class.java)
.isEqualTo<Nothing>("Hello Foo!")
}
}
当我尝试使用 String
或 java.lang.String
而不是 Nothing
时,我收到错误消息:
Type argument is not within its bounds. Expected: Nothing! Found:String!
当我使用 Nothing
时,我得到了 NPE。
已经有
您似乎没有使用被确定为解决方法的扩展函数。要使用它,请尝试按如下方式更新测试的最后两行:
webClient.get()
.uri("/hello/Foo")
.accept(MediaType.TEXT_PLAIN)
.exchange()
.expectStatus()
.isOk()
.expectBody<String>()
.isEqualTo("Hello Foo!")
似乎工作正常。
供参考: