首页 > 解决方案 > Kotlin 测试 DSL 中的限制

问题描述

我们正在用 Kotlin 编写 DSL,并且在该 DSL 中添加了一些限制。例如,

table {
  tr {
    td {
    }
  }
}

在这里,我们限制td不应该在另一个内部调用td

我们如何测试这个?kotlin 中是否有任何 dsl-testkit 或 matcher 库可以让我们在 scalatest 中执行类似“shouldNot compile”之类的操作

标签: testingkotlincompilationkotlin-dsl

解决方案


一种解决方案是使用 Kotlin 脚本引擎,使其运行带有您的 DSL 构造的脚本,该脚本应该被拒绝,并断言该脚本没有编译。

您可能会发现有用的链接:


推荐阅读