多个断言 (assertAll) - Kotest

Gus*_*lik 5 kotest

有没有办法以 DSL 风格检查 Kotest 中的多个断言 - 没有 JUnit 的 Assertions.assertAll 方法?

我可以写一些类似的东西吗

firstValue shouldBe 1
and secondValue shouldBe 2
Run Code Online (Sandbox Code Playgroud)

代替

assertAll(
    { fistValue shouldBe 1 },
    { secondValue shouldBe 2 })
Run Code Online (Sandbox Code Playgroud)

Ker*_*ker 6

我通常用 来做assertSoftly。这可能正是您想要的。从文档中

assertSoftly {
  foo shouldBe bar
  foo should contain(baz)
}
Run Code Online (Sandbox Code Playgroud)

或者将其用作参数

assertSoftly(foo) {
    shouldNotEndWith("b")
    length shouldBe 3
}
Run Code Online (Sandbox Code Playgroud)

但是,您的语法同样有效。你真的不需要软弱地断言。

firstValue shouldBe 1
secondValue shouldBe 2
Run Code Online (Sandbox Code Playgroud)

将执行这两个断言。如果第一个失败,测试就会提前崩溃。使用assertSoftly,将检查两个断言。