gpt4 book ai didi

python - 使用装饰器进行数据驱动测试

转载 作者:太空宇宙 更新时间:2023-11-04 06:15:03 25 4
gpt4 key购买 nike

我正在尝试使用装饰器对函数进行参数化。经过大量的打击和试验,我终于能够让它按预期运行。但我仍然不满意,好像它正在工作,这似乎不是正确的方法。

请帮我改进这段代码。

这是我的代码:

def WarmWelcome(fn):
def wrapped(DataProvider):
for name in DataProvider():
print fn(name) + ":)"
return wrapped

def DataProvider():
names=["abc","xyz","def"]
for name in names:
yield name

@WarmWelcome
def hello(name):
return "hello " +name

hello(DataProvider)

这是更新后的代码:

def WarmWelcome(DataProvider):
def real_decorator(fn):
def wrapped():
for name in DataProvider():
print fn(name) + ":)"
return wrapped
return real_decorator

def DataProvider():
names=["abc","xyz","def"]
for name in names:
yield name
@WarmWelcome(DataProvider)
def hello(name):
return "hello " +name

hello()

最佳答案

也可以向 WarmWelcome 装饰器提供数据集权限:

def WarmWelcome(*data_sets):
def _decorator(func):
def _func():
for ds in data_sets:
func(*ds)
return _func
return _decorator

@WarmWelcome(
("abc", ),
("xyz", ),
("def", ),
)
def hello(name):
return "hello " +name

原文:PHPUnit-like dataProvider implementation for Python unittest

关于python - 使用装饰器进行数据驱动测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16252810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com