在编译JavaScript时如何测试Kotlin代码?

时间:2015-02-17 05:21:25

标签: kotlin

我在IntelliJ(Ultimate)中有一个Kotlin JavaScript项目。我希望能够为这个项目编写测试。

我尝试了很多不同的东西,从用Spek编写测试(这将是理想的)到用Karma / Jasmine编写它们。 Spek的问题在于我无法使用JavaScript项目。它抱怨一些罐子不是JavaScript库。

Karma / Jasmine的问题在于我无法弄清楚如何让测试跑步者从我的Kotlin测试输出中获取测试。当测试是用纯JavaScript编写的时,他们无法访问我的Kotlin对象,因为我不知道如何正确引用它们,以及在进行Kotlin到JavaScript编译时发生的所有名称修改。

我现在对任何事情都开放,因为这是一个Angular项目,我可能想知道如何使用Protractor进行端到端测试,尽管我真的更喜欢一些单元测试覆盖。 / p>

1 个答案:

答案 0 :(得分:6)

下面您可以找到我使用QUnit编写的简单测试。我相信你可以为其他图书馆做同样的事情。此外,它可以通过使其更安全类型来改进。

main.kt

native("QUnit") val qunit: dynamic
val assert = qunit.assert

fun main(args: Array<String>) {

    qunit.test( "hello test")  { assert ->
        val t: Any = "1"
        assert.ok(1 == t, "Passed!")
    }

    qunit.test( "hello test")  {
        assert.ok(1 == 1, "Passed!")
    }
}

runner.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>QUnit Example</title>
    <link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-1.17.1.css">
</head>
<body>
<div id="qunit"></div>
<div id="qunit-fixture"></div>
<script src="https://code.jquery.com/qunit/qunit-1.17.1.js"></script>
<script src="lib/kotlin.js"></script>
<script src="js_test.js"></script>
</body>
</html>