全局名称'mock'未定义

时间:2017-03-13 12:19:25

标签: python python-2.7 unit-testing mocking

我正在尝试用Python进行单元测试。我一直遇到使用mock的问题,应该重新移植到Python 2.7,但我无法让它工作。

在代码的顶部我有from mock import MagicMock, call,但是当我运行单元测试时,我仍会出现错误,它会抱怨global name 'mock' is not defined

感到沮丧,我去看看它是否真的安装了(pip install mock和pip install unittest都已经运行了。)

存在于/usr/lib/python3.4/unittest/mock.py中,这使我相信只有Debian Jessie上的Python3才真正支持模拟对象。

所以,这里有一个问题:如何在替代方案中获得2.7 的实际反向端口,如何将Debian 8配置为默认使用Python3运行应用程序?

1 个答案:

答案 0 :(得分:1)

解决了它。

对于未来的搜索者,答案有两个:

  1. 添加import mock,但这会导致错误,因为Debian Jessie上的Python 2.7库在/usr/lib/python2.7/中没有mock.py,所以你通过以下方式解决了这个问题: / p>

  2. 下载latest backport,将其解压缩,然后将包含模拟软件包的模拟目录复制到/usr/lib/python2.7 /

  3. 出于某种原因,pip和easy_install只安装3.4库。