Kotlin 在 DSL 中测试限制



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

table {
tr {
td {
}
}
}

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

我们如何测试这一点?Kotlin 中是否有任何 dsl-testkit 或匹配器库可以让我们在 scalatest 中做类似"shouldNot compile"的事情

一种解决方案是使用 Kotlin 脚本引擎,让它运行一个包含应被拒绝的 DSL 构造的脚本,并断言脚本未编译。

您可能会觉得有用的链接:

  • 从常规 Kotlin 程序运行 Kotlin 脚本 (kts( 由 Kotlin 专业知识博客
  • s1monw1/KtsRunner,一个以编程方式封装运行 Kotlin 脚本的库
  • 在 Kotlin 端描述了一个更新、更强大、但更复杂的脚本支持实现,在 KEEP-75 中有所描述

最新更新