如何使用Python断言对象中不存在指定的属性?
解决方案
你给出的output是Python字典结构,验证字典不存在指定键直接用not in运算符搭配断言即可。
基础写法
assert 'hidden_fields' not in output
- 逻辑说明:Python中
in运算符可以直接判断字典是否包含指定键,not in反过来判断键不存在。如果output里存在hidden_fields键,断言会直接抛出AssertionError,验证不通过;否则断言正常执行无报错。
带自定义错误提示的写法
如果需要断言失败时输出更友好的调试信息,可以加第二个参数自定义报错内容:
assert 'hidden_fields' not in output, "output不应该包含hidden_fields字段"
场景测试示例
存在hidden_fields的场景(断言失败)
output = { 'username': 'user', 'hidden_fields': { 'name': 'name1', } } assert 'hidden_fields' not in output # 执行后抛出AssertionError
不存在hidden_fields的场景(断言通过)
output = { 'username': 'user' } assert 'hidden_fields' not in output # 执行无报错,验证通过
补充说明:如果你要验证的不是字典,而是普通类的实例对象,判断属性不存在需要用
hasattr方法,写法为assert not hasattr(output, 'hidden_fields'),你给出的示例是字典结构,用not in即可满足需求。
内容的提问来源于stack exchange,提问作者stackuser
相关产品推荐
相关产品推荐

