我正在尝试为一个Python程序创建一些测试。我使用的是Python版本2.7.12,因此我必须使用 "sudo pip install mock" 命令安装 mock
。
根据文档和几个其他网站的说法,我应该能够使用以下代码来使用patch:
import mock # Also could use from mock import patch
import unittest
class TestCases(unittest.TestCase):
@mock.patch('MyClass.ImportedClass') # If using from mock import patch should just be @patch
def test_patches(self, mock_ImportedClass):
# Test code...
然而,以上代码会抛出以下错误:
AttributeError: 'module' object has no attribute 'patch'
在终端进行了一些实验后,似乎有很多东西无法正常工作。例如:
>>> import mock
>>> mock.MagicMock
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'MagicMock'
>>> mock.patch
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'patch'
>>> mock.Mock
<class mock.Mock at 0x7fdff56b0600>
有趣的是,我可以使用mock.Mock()
访问patch
,但我不知道它是否以同样的方式工作,并且在文档中找不到任何相关内容。
由于我的Python经验相当有限,所以我不确定可能出了什么问题。我相当确定正确的包已安装。请问如何帮助我使其正常工作?
mock.py
或类似的名称?检查mock.__file__
并查看其返回结果。 - user2357112mock.py
的文件。不确定它是从哪里来的,但在我删除它之后现在似乎一切都可以编译了。谢谢。 - c1mooremock
的子目录移动了过去,然后所有测试都以相同的错误失败,但是一旦我删除了mock
目录,一切都正常了。 - Gang