gpt4 book ai didi

kotlin - 如何使用 JUnit 5 在 Kotlin 中创建 TestContainers 基础测试类

转载 作者:行者123 更新时间:2023-12-02 12:10:52 25 4
gpt4 key购买 nike

我正在尝试将 Neo4j TestContainers 与 Kotlin、Spring Data Neo4j、Spring Boot 和 JUnit 5 一起使用。我有很多测试需要使用测试容器。理想情况下,我希望避免在每个测试类中复制容器定义和配置。

目前我有类似的东西:

@Testcontainers
@DataNeo4jTest
@Import(Neo4jConfiguration::class, Neo4jTestConfiguration::class)
class ContainerTest(@Autowired private val repository: XYZRepository) {

companion object {
const val IMAGE_NAME = "neo4j"
const val TAG_NAME = "3.5.5"

@Container
@JvmStatic
val databaseServer: KtNeo4jContainer = KtNeo4jContainer("$IMAGE_NAME:$TAG_NAME")
.withoutAuthentication()
}

@TestConfiguration
internal class Config {
@Bean
fun configuration(): Configuration = Configuration.Builder()
.uri(databaseServer.getBoltUrl())
.build()
}

@Test
@DisplayName("Create xyz")
fun testCreateXYZ() {
// ...
}

}

class KtNeo4jContainer(val imageName: String) : Neo4jContainer<KtNeo4jContainer>(imageName)

如何提取 databaseServer 定义和@TestConfiguration?我尝试了不同的方法来创建基类并让 ContainerTest 扩展它,但它不起作用。据我了解,静态属性在 Kotlin 中不会被继承。

最佳答案

我遇到了同样的问题(让 Spring Boot + Kotlin + Testcontainers 一起工作),在网上搜索(相当)一段时间后,我找到了这个不错的解决方案:https://github.com/larmic/testcontainers-junit5 .您只需将其应用到您的数据库中即可。

关于kotlin - 如何使用 JUnit 5 在 Kotlin 中创建 TestContainers 基础测试类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56099667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com