我尝试通过使用@patch
:
class TestMyUnit(unittest.TestCase):
...
@patch(provider.Provider,autospec=True)
def test_init(self, mock_provider):
pass
然而,当我运行测试时,我收到错误:
*@patch(provider.Provider)*
*File "build\bdist.win32\egg\mock.py", line 1518, in patch*
*getter, attribute = \_get\_target(target)*
*File "build\bdist.win32\egg\mock.py", line 1367, in \_get\_target*
*target, attribute = target.rsplit('.', 1)*
*AttributeError: class Provider has no attribute 'rsplit'*
*ERROR: Module: test\_my\_unit could not be imported (file: C:\dev\src\test\_my\_unit.py).*
有什么想法吗?
答案 0 :(得分:35)
使用字符串而不是类。
@patch('provider.Provider', autospec=True)
def test_init(self, mock_provider):
pass