如何在Hamcrest中组合多个断言?

2024-04-29 18:51:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我用的是PyHamcrest,但我认为这个问题是语言不可知论的。在

我想转一下:

assert_that(actual0, matcher0)
assert_that(actual1, matcher1)

如果两个断言都失败,则错误消息会这样说。这可以在Hamcrest(或其他包/模块)中完成吗?在

在Python中,我实现了:

^{pr2}$

所以我的测试结果是:

assert_all(
    (actual0, matcher0),
    (actual1, matcher1))

但我想知道是否已经有类似的实现。在


Tags: 模块语言消息that错误assert断言all
2条回答

Hamcrest断言的目的是为单个对象匹配,因此您所要求的很难优雅地融入模型中。总的来说,我认为任何一个你混在一起的解决方案看起来至少和单独的断言一样糟糕。就我而言,为了清晰起见,我更喜欢单独的断言。在

actual值的一系列值(列表或元组)和相同数量的匹配器作为参数传递给^{}

assert_that((actual0, actual1, ...), contains(matcher0, matcher1, ...))

匹配器列表按实际值的顺序逐个应用。所有这些都必须匹配,断言才能通过。在

相关问题 更多 >