Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python/Django中有没有一种简单的方法来模拟许多静态方法?_Python_Django_Unit Testing - Fatal编程技术网

在python/Django中有没有一种简单的方法来模拟许多静态方法?

在python/Django中有没有一种简单的方法来模拟许多静态方法?,python,django,unit-testing,Python,Django,Unit Testing,我来自Ruby/Rspec世界,在那里模拟和设置tests/expects()语句来测试静态方法非常简单 我想知道是否有一种简单的方法可以在Python中测试相同的东西。请忽略代码实际在做什么(我在其中更改了许多名称),我有以下代码: def create_models(pr_dict): facility = FacilityCreator.doit(pr_dict) p = PCreator.doit(facility, pr_dict) pr = PRCreat

我来自Ruby/Rspec世界,在那里模拟和设置tests/expects()语句来测试静态方法非常简单

我想知道是否有一种简单的方法可以在Python中测试相同的东西。请忽略代码实际在做什么(我在其中更改了许多名称),我有以下代码:

def create_models(pr_dict):
    facility = FacilityCreator.doit(pr_dict)

    p = PCreator.doit(facility, pr_dict)

    pr = PRCreator.doit(p, p.recent, pr_dict)

    models_affected = {'f': f,
                       'pr': pr,}

    return models_affected

我已经研究了unittest和unittest.mock,但如果我的方法中有许多静态方法,那么它似乎不是一个有说服力的解决方案。换句话说,我将在一个@patch中做一个@patch,等等。

您可能想看看python。它有模拟和修补模块

谢谢。我已经做了,但是也看了mock。它没有清楚地回答我的“静态方法”问题。你可以创建一个“模拟类”,其中包含你想要模拟的方法,并对整个类进行修补,以避免嵌套的修补声明