3

有什么方法可以在 DSL 样式中检查 Kotest 中的多个断言 - 没有来自 JUnit 的 Assertions.assertAll 方法?

我可以写类似的东西吗

firstValue shouldBe 1
and secondValue shouldBe 2

代替

assertAll(
    { fistValue shouldBe 1 },
    { secondValue shouldBe 2 })
4

1 回答 1

3

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

assertSoftly {
  foo shouldBe bar
  foo should contain(baz)
}

或将其用作参数

assertSoftly(foo) {
    shouldNotEndWith("b")
    length shouldBe 3
}

但是,您的语法同样适用。你真的不需要轻声断言。

firstValue shouldBe 1
secondValue shouldBe 2

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

于 2020-07-13T17:14:50.403 回答