如何拥有KotlinJS模块,在其中使用JUnit测试业务逻辑?

时间:2019-07-15 13:32:26

标签: testing kotlin junit kotlin-multiplatform kotlin-js

与我同在,我还没有完全了解多平台的工作原理。

我想要实现的是具有一些业务逻辑,最后将其编译成一个我可以在HTML中使用的js文件,并使其包含在单元测试中。

我可以使用一个简单的KotlinJS Gradle项目使第一个园区工作。测试部分比较棘手。多亏了kotlin-test-js,我有了一些注释,例如@Test,但是我想编写参数化测试,我可以使用JUnit来实现。

这怎么可能?

我对JS还是很陌生。.mocha,qunit和karma对我来说都是新术语,而且我还没有掌握多模块设置的知识。是否有一个很好的(最新的!)文章?

谢谢

1 个答案:

答案 0 :(得分:0)

据我所知,您不能从纯KotlinJS项目中调用JUnit。为此,您需要Kotlin Multiplatform。然后,您可以拥有一个带有业务逻辑的“纯Kotlin”模块,可以使用Kotlin / JS特定模块(该模块将编译为所需的.js文件)和Kotlin / JVM特定模块进行扩展(该模块将支持您的JUnit)测试并在JVM上运行它们)。当然,您不能在纯Kotlin模块中使用JS特定功能(例如DOM),但是业务逻辑应该可以。

有关如何设置此类项目的更多信息,请参见official documentation。官方教程甚至明确提到了如何设置特定于JS和JVM的模块以及JUnit。那里有一个额外的Kotlin / Native模块,您可以安全地删除/忽略它。

或者,您可以寻找纯JS单元测试框架,但是设置起来可能会有些棘手。