Тестирование Reactive Spring webflux с использованием контекста приложения WebTestClient - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь протестировать следующее весеннее приложение 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...