类型错误:需要一个有效的目标来修补

问题描述 投票:0回答:1

我有这样的目录结构:

Business_Logic
   excel_format_error_checks.py
tests
   test_excel_format_error_checks.py

在我的 test_excel_format_error_checks.py 中,我收到错误

TypeError: Need a valid target to patch. You supplied: <module 'openpyxl' from 'C:\\Users\\brady\\Desktop\\excel_formatting\\excel_format_website\\venv\\lib\\site-packages\\openpyxl\\__init__.py'>

excel_format_error_checks.py

import openpyxl
...

test_excel_format_error_checks.py

import sys
sys.path.append('..')
from Business_Logic import excel_format_error_checks

class TestExcelFormatErrorChecks(TestCase):

    @patch(excel_format_error_checks.openpyxl):
       ...

我查看了文档,其中讨论了在何处修补,它说要在查找模块的位置修补。根据我的理解,我正在 excel_format_error_checks.py 中查找 openpyxl,所以这就是应该修补的地方。

谢谢

python unit-testing mocking python-mock
1个回答
0
投票

老问题,我知道。但您的问题可能是您没有提供尝试修补的功能的完整路径。应该是

@patch(Business_Logic.excel_format_error_checks.openpyxl)
(不含冒号)。

from Business_Logic import excel_format_error_checks
@patch
无关。

© www.soinside.com 2019 - 2024. All rights reserved.