(伪代码)我有带有属性的类Node:
class Node(WebElement):
def __init__(self, element):
super().__init__(element)
...
@property
def name(self):
<returns name>
@property
def node_id(self):
<returns node_id>
@property
def device_type(self):
<returns device type>等等..。我需要创建测试,这将检查Node属性是否为None (必须是参数化的,管理是有数量偏见的)。
简单的方法是使用getattr。
@pytest.mark.parametrize("property", ["name" ,"node_id" ,"device_type"])
def test_01_device_information(self, property):
property = request.param
...
for node in nodes:
assert device.getattr(node, property) is not None但缺点是,这是动态反射,测试将知道运行时是否存在属性。不能找出丢失的财产。测试在夜间进行..。
我可以列出这样的属性列表(语法器会发现其中的属性已经消失):
@pytest.mark.parametrize("property", [Node.name ,Node.node_id ,Node.device_type])在for循环中有在对象‘节点’上调用它的方法吗?我知道,我可以在__name__上调用property,但我也认为可能有更好的或不同的解决方案。我很感谢你的建议!)
发布于 2022-05-13 07:48:56
你可以:
for node in nodes:
assert property.fget(node) is not Nonehttps://stackoverflow.com/questions/72225302
复制相似问题