Kotlintest扩展将信息提供回测试

JUnit 5具有简洁的扩展功能,即使它在JUnit框架上运行,它也与kotlintest不兼容。 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,但是它执行类的反射实例化。 有什么方法可以使它更容易吗?

js333888 回答:Kotlintest扩展将信息提供回测试

在将扩展名/侦听器传递给替代功能之前,您可以保留对其的引用。

例如:

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


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

通过这种方式,您可以在参考可用的情况下完成测试中想要做的事情

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

如果您使用任何扩展名,也是如此。

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

本文链接:https://www.f2er.com/3028143.html

大家都在问