Ben*_*lca 14 python unit-testing mocking python-unittest
在 Python 中使用模拟时,我遇到了计算路径的问题。
假设我有以下文件
文件1.py
def func1():
return 'X'
Run Code Online (Sandbox Code Playgroud)
文件2.py
from file1 import func1
class ClassA():
def func_that_uses_func1(self):
x = func1()
Run Code Online (Sandbox Code Playgroud)
如何修补 ClassA 上 func1 的使用?我尝试过 @mock.patch('file2.func1'),但出现错误AttributeError: <class 'ClassA'> does not have the attribute 'func1'
idj*_*jaw 11
我认为你想真正进行模拟@mock.patch('file2.func1')。我下面的例子可能会有所帮助:
from file2 import ClassA
from mock import patch
import unittest
class TestClassA(unittest.TestCase):
def setUp(self):
self.c = ClassA()
@patch('file2.func1')
def test_func(self, m_func1):
self.c.func_that_uses_func1()
self.assertEqual(m_func1.called, 1)
if __name__ == '__main__':
unittest.main()
Run Code Online (Sandbox Code Playgroud)