1

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

table {
  tr {
    td {
    }
  }
}

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

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

4

1 回答 1

1

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

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

于 2019-12-03T10:28:29.477 回答