我正在将一些测试从 Java 转换为 Kotlin。对于 Java 测试,我使用 AssertJ 库,它非常强大并且具有丰富的断言集。我的问题是,对于 Kotlin 测试,我不能使用 AssertJ,而 Kotlin JUnit ( org.jetbrains.kotlin:kotlin-test-junit
) 的断言集非常有限。
是否有与 AssertJ 等效的 Kotlin 或更好的断言方式?
我找到了 Kluent 库,但我仍然不确定这是否是最好的库。
我正在将一些测试从 Java 转换为 Kotlin。对于 Java 测试,我使用 AssertJ 库,它非常强大并且具有丰富的断言集。我的问题是,对于 Kotlin 测试,我不能使用 AssertJ,而 Kotlin JUnit ( org.jetbrains.kotlin:kotlin-test-junit
) 的断言集非常有限。
是否有与 AssertJ 等效的 Kotlin 或更好的断言方式?
我找到了 Kluent 库,但我仍然不确定这是否是最好的库。
没有官方的等价物,但基本的 AssertJ 在许多情况下仍然可用,并且看起来相当不错:
assertThat(info)
.containsKey("foo")
assertThatThrownBy { session.restTemplate.postForLocation("foo", {}) }
.isExactlyInstanceOf(HttpClientErrorException::class.java)
如果你想要专用的包装器,这个早期项目正在尝试实现这一点:https ://github.com/wuan/assertj-core-kotlin
您可能不再搜索断言库,但如果您对当前的选择还不满意,请查看https://github.com/robstoll/atrium
它尤其支持:
以及更高级的功能,例如复杂的断言构建器、对 i18n 的支持等。
自述文件中的示例将为您提供一个很好的概述: https ://github.com/robstoll/atrium/blob/master/README.md#examples