首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kotlintest扩展向测试返回信息

Kotlintest扩展向测试返回信息
EN

Stack Overflow用户
提问于 2019-11-26 22:59:13
回答 1查看 39关注 0票数 1

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

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

代码语言:javascript
复制
@ExtendWith(MyExtension.class)
class Something() {

 @MyAnnotation
 MyType myType;

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

}

在JUnit4中就更简单了

代码语言:javascript
复制
@Rule
MyRule myRule;

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

当然,有一个SpringExtension,但它执行类的反射实例化。有没有更简单的方法呢?

EN

回答 1

Stack Overflow用户

发布于 2019-11-29 11:17:12

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

例如:

代码语言:javascript
复制
val myListener = MyKotlinTestListener()
val myOtherListener = MyOtherKotlinTestListener()


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

通过这种方式,您可以使用可用的引用在测试中执行您想要的操作

代码语言:javascript
复制
test("MyTest") {
    myListener.executeX()
}

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59053700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档