是否有AsotJ库的Kotlin等价物?

Mar*_*lev 11 assertions kotlin kotlintest

我正在将一些测试从Java转换为Kotlin.对于Java测试,我使用AssertJ库,它非常强大并且具有丰富的断言集.我的问题是,对于Kotlin测试我不能使用AssertJ和Kotlin JUnit(org.jetbrains.kotlin:kotlin-test-junit)具有非常有限的断言集.

是否存在与AssertJ等效的Kotlin或更好的断言方式?

我找到了Kluent库,但我仍然不确定这是否是最好的库.

Grz*_*rek 10

没有官方的等价物,但基本的AssertJ在很多情况下仍然可用,看起来很不错:

assertThat(info)
  .containsKey("foo")


assertThatThrownBy { session.restTemplate.postForLocation("foo", {}) }
  .isExactlyInstanceOf(HttpClientErrorException::class.java)
Run Code Online (Sandbox Code Playgroud)

如果你想要专用的包装器,这个早期阶段的项目正试图实现这个目标:https://github.com/wuan/assertj-core-kotlin


Rob*_*oll 6

您可能不再搜索断言库,但为了防止您对当前的选择感到满意,请查看https://github.com/robstoll/atrium

除其他外,它支持:

  • 断言组
  • 可为空类型的断言函数
  • 财产断言
  • 方法断言
  • 假设投掷了一个Throwable

以及更高级的功能,如复杂的断言构建器,支持i18n等.

README中的示例将为您提供一个很好的概述:https: //github.com/robstoll/atrium/blob/master/README.md#examples