Python 中的条件断言



我有一个来自WS的响应,它返回列表的字典。通常,我需要检查字典中是否没有一个列表是空的。但是现在我需要根据条件检查其中一些,但不是全部。

例如:结果是:

{
    'firstList': [{...}], #some data in the list
    'secondList': [], #empty list
    'thirdList': [{...}], #some data in the list
    ...
}

例如,如果我有一个条件,则不应检查第二个列表

assert len(response['secondList']) > 0

然后它不应该引发异常,

但如果条件中没有它,那么它应该引发断言异常。

知道这个问题的最佳解决方案是什么吗?也许是另一个断言库?

最好的办法是最后收集所有异常,然后我可以验证它们是否正常/nok。

有几种方法,但一种非常干净的方法是:

lists_to_check = ('firstList', 'thirdList')
for list_name in lists_to_check:
    assert len(response[list_name]) > 0

如果你想一个接一个地检查它们,你也可以使用这样的东西:

assert condition1 or len(response['firstList']) > 0
assert condition3 or len(response['thirdList']) > 0

但无论如何我都会使用第一个。上面的代码片段只检查'firstList''thirdList'的长度。

您可以将条件添加到assert

assert condition or len(response['secondList']) > 0

如果至少有一个条件True,则断言将通过。

最新更新