首页 > 解决方案 > Python mock 修补类实例中的方法

问题描述

我有一个项目在我的主__init__文件中分配了 2 个配置,因为它们在整个项目中经常使用。

#__init__.py

from config import Config

config1 = Config('Email')
config2 = Config('Test')

我在 config.py 中的 Config 类有一个方法content,我需要在实例config1config2. 配置确实调用了第三方库来执行 http 请求,所以我需要返回一个json字典来响应content.

在验证器函数中,我有以下内容:

#validation.py

from parser import config1, config2

def validation(msg):
    if "email" in config1.keys():
        ...

我不是想模拟测试,而是不断出错。我尝试了各种mock patch路径,但都没有奏效。

我最近的尝试如下:

from mock import patch
from parser import validation

@patch('parser.Config')
def test_is_valid(mock_config):

    mock_config.return_value.content = "Test"

    assert validation.is_valid("email") == True

我的 Config 实例(config1 和 config2)没有正确返回 .content 值,我做错了什么?谢谢

标签: pythonpython-2.7unit-testingmockingpython-mock

解决方案


推荐阅读