kotlintest如何测试Spring Boot应用程序

Kan*_*ane 1 kotlin spring-boot kotlintest

Spring Boot应用程序的集成测试始终首先启动Web服务器。

Spring Boot测试的最简单测试如下所示,如何使用kotlintest迁移它?

@ExtendWith(SpringExtension::class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class ReportApplicationTests {

    @Test
    fun `Server can be launched`() {
    }

}
Run Code Online (Sandbox Code Playgroud)

Ker*_*ker 5

Kotlintest 对于如何设置Spring Extension来测试Spring Framework 提供了很好的指导

基本上,除了KotlinTest依赖以外,您还添加了Spring Extension

testImplementation ("io.kotlintest:kotlintest-runner-junit5:3.3.2") // KT dependency
testImplementation("io.kotlintest:kotlintest-extensions-spring:3.3.2") // KT Spring Extensions
Run Code Online (Sandbox Code Playgroud)

然后在代码中包含SpringListener SpringBootTest

import org.springframework.boot.test.context.SpringBootTest
import io.kotlintest.spring.SpringListener

@SpringBootTest
class SpringExample : FreeSpec() {

    override fun listeners() = listOf(SpringListener)

    init {
        "Verify context loads" {

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

您无需添加SpringListener到创建的每个测试中,您可以使用全局配置它ProjectConfigKotlinTest文档中说明了ProjectConfig