Kotlin 在使用mockk验证和断言库时,请检查所有断言和验证
我希望测试报告所有断言和验证。因此,mock验证和断言库在本例中,KotlinTest断言应该运行,而不是短路 换句话说,我不想让考试停止Kotlin 在使用mockk验证和断言库时,请检查所有断言和验证,kotlin,mockk,kotlintest,Kotlin,Mockk,Kotlintest,我希望测试报告所有断言和验证。因此,mock验证和断言库在本例中,KotlinTest断言应该运行,而不是短路 换句话说,我不想让考试停止 verify(exactly = 1) { mock.methodcall(any()) } // ... here success shouldBe true // how can I check this line too 也不是 success shouldBe true // ... here verify(exactly = 1) { mock.
verify(exactly = 1) { mock.methodcall(any()) } // ... here
success shouldBe true // how can I check this line too
也不是
success shouldBe true // ... here
verify(exactly = 1) { mock.methodcall(any()) } // how can I check this line too
如何做到这一点?如果我能同时使用一个工具,我愿意使用它。根据你的评论,你说你正在使用KotlinTest 在KotlinTest,我相信您可以使用以下方法来实现您想要的行为: 通常,像shouldBe这样的断言在失败时抛出异常。但有时您希望在测试中执行多个断言,并希望看到所有失败的断言。KotlinTest为此提供了AssertSoftware功能
assertSoftly {
foo shouldBe bar
foo should contain(baz)
}
如果块内的任何断言失败,测试将继续运行。所有故障都将在块末尾的单个异常中报告
然后,我们可以将您的测试转换为使用AssertSoftware:
当AssertSoftware抛出异常时,有必要将verify包装在shouldnotherwany中,以使AssertSoftware知道它根据您的评论,您说您正在使用KotlinTest 在KotlinTest,我相信您可以使用以下方法来实现您想要的行为: 通常,像shouldBe这样的断言在失败时抛出异常。但有时您希望在测试中执行多个断言,并希望看到所有失败的断言。KotlinTest为此提供了AssertSoftware功能
assertSoftly {
foo shouldBe bar
foo should contain(baz)
}
如果块内的任何断言失败,测试将继续运行。所有故障都将在块末尾的单个异常中报告
然后,我们可以将您的测试转换为使用AssertSoftware:
有必要将verify包装在shouldthrowany中,以使AssertSoftwary在抛出异常时意识到它shouldthrowany部分是我丢失的部分,非常感谢!不该错过的部分是我丢失的部分,非常感谢!