我正在尝试在测试方法运行期间,修补
我遇到了这个错误:
settings
模块中的一个变量:from unittest import mock
class Test(...):
@mock.patch('settings.TARGET_SCORES_PER_SECTION', True)
def test_register_user(self):
我遇到了这个错误:
ERROR: tests.test_user.transplant_class.<locals>.C (test_register_user)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/mock.py", line 1179, in patched
return func(*args, **keywargs)
TypeError: test_register_user() missing 1 required positional argument: 'self'
我尝试了不同的方法,但没有找到解决方案。
我做错了什么?
这个版本运行得很好:
def test_register_user(self):
with mock.patch('settings.TARGET_SCORES_PER_SECTION', True):
self._test_register_user()
def _test_register_user(self):
我希望使用修饰器的方式能够达到同样的效果。
settings
并将修补后的模拟对象添加到测试函数参数中,就像这样def test_register_user(self, mock_target_scores):
。 - progmaticoself
放入类方法中吗? - progmatico