我正在尝试模拟一种返回像这样的用户对象的方法
@mock.patch('impersonate.helpers.which_user', return_value=self.user2)
def test_user_can_retrieve_favs_using_impersonation(self):
失败,并显示错误:NameError: name 'self' is not defined
。我在测试类的设置方法中定义了self.user2
。
答案 0 :(得分:1)
您不能在装饰器中使用self
-在解析该对象时尚未定义该对象。
您可以将修补程序移至方法中:
def test_user_can_retrieve_favs_using_impersonation(self):
with mock.patch('impersonate.helpers.which_user', return_value=self.user2):
...
或
def test_user_can_retrieve_favs_using_impersonation(self):
with mock.patch('impersonate.helpers.which_user') as mocked:
mocked.return_value=self.user2
...