1

我希望无论传入什么内容,以下调用都会which_user返回,但它的行为就好像它根本没有被嘲笑。self.user

def test_user_can_retrieve_favs_using_impersonation(self):
        with mock.patch('impersonate.helpers.which_user', return_value=self.user):
            user = which_user(self.user2)

我在这里做错了什么?我是这样导入which_user的:from impersonate.helpers import which_user如果有帮助的话。

4

1 回答 1

3

您需要通过它的导入路径来模拟函数。例如,您在 myapp 的视图中使用您的函数。因此,您需要通过以下方式进行操作:

with mock.patch('myapp.views.which_user', return_value=self.user):
        user = which_user(self.user2)

这是因为它只修补可测试模块中定义的变量,而不修补系统或 venv 中的原始库和包。

于 2020-06-15T18:58:16.457 回答