Я пытаюсь протестировать следующее весеннее приложение webflux Kotlin с WebTestClient и Junit 5:
@SpringBootApplication
class ReactiveKataApplication
fun main(args: Array<String>) {
SpringApplicationBuilder(ReactiveKataApplication::class.java)
.initializers(
beans {
bean {
router {
GET("/frp/hello") {
ServerResponse.ok().body(Mono.just("Hello"), String::class.java)
}
}
}
})
.build()
.run(*args)
}
У меня есть следующий тест, который не работает с 404, может кто-нибудь помочь мне определить Проблема?
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@SpringBootTest
class ReactiveKataApplicationContextTest {
private lateinit var webTestClient : WebTestClient
@Autowired
lateinit var context: ApplicationContext
@BeforeAll
fun initClient() {
webTestClient = WebTestClient
.bindToApplicationContext(context)
.configureClient()
.build()
}
@Test
fun `calling hello world endpoint returns 200`() {
webTestClient.get().uri("/frp/hello")
.exchange()
.expectStatus().isOk
}
}
В журнале испытаний я вижу, что контекст - это ReactiveKataApplicationContext Тест , а не фактическое приложение, может ли кто-нибудь помочь в решении этой проблемы с помощью привязки WebTestClient к контексту приложения ?
2020-01-29 12:01:27.538 INFO 16269 --- [ main] c.o.r.ReactiveKataApplicationContextTest : Started ReactiveKataApplicationContextTest in 1.666 seconds (JVM running for 3.157)
Я пытался @SpringBootTest(classes = [ ReactiveKataApplication::class ])
безрезультатно.
Git репо здесь: https://github.com/stefan-cross/reactive-spring-kata