使用Decorator进行数据驱动测试

2024-09-26 18:07:03 发布

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

我试图用decorator参数化一个函数。最后,我能让它运行如预期,在许多打击和试验。但我仍然不满意,好像它是有效的,这似乎不是正确的方法。在

请帮助我改进这个代码。在

这是我的代码:

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) 

以下是更新后的代码:

^{pr2}$

Tags: 代码nameinhellofor参数returnnames
1条回答
网友
1楼 · 发布于 2024-09-26 18:07:03

还可以向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

相关问题 更多 >

    热门问题