gpt4 book ai didi

testing - Kotlintest 扩展为测试提供信息

转载 作者:行者123 更新时间:2023-11-28 20:47:52 34 4
gpt4 key购买 nike

JUnit 5 有一个简洁的扩展功能,它与 kotlintest 不兼容,即使它运行在 JUnit 框架上。虽然我们只需要记录一些东西的简单用例可以由 TestListener 处理,但我们无法处理更高级的情况。特别是,如何与扩展交互?理想情况下,我想获取扩展程序以便查询它。

在 JUnit5 中它将是(无论如何都是一个选项)

@ExtendWith(MyExtension.class)
class Something() {

@MyAnnotation
MyType myType;

@Test
void doSomething() {
myType.doSomething();
}

}

在 JUnit4 中会更简单

@Rule
MyRule myRule;

@Test
void fun() {
myRule.something();
}

当然,有一个 SpringExtension,但它进行类的反射实例化。有什么方法可以更轻松地做到这一点?

最佳答案

在将扩展/监听器传递给覆盖的函数之前,您可以保留对扩展/监听器的引用。

例如:

val myListener = MyKotlinTestListener()
val myOtherListener = MyOtherKotlinTestListener()


override fun listeners() = listOf(myListener, myOtherListener)

这样你就可以在你的测试中使用可用的引用做你想做的事

test("MyTest") {
myListener.executeX()
}

如果您使用任何类型的扩展程序,情况也是如此。

它们仍将作为 KotlinTest 生命周期的一部分执行!

关于testing - Kotlintest 扩展为测试提供信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59053700/

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