在以下问题中,使用 ftplib 的函数在同一个文件中定义,这使得修补 ('ftplib.FTP') 变得很简单
模拟 ftplib.FTP 以对 Python 代码进行单元测试
我的问题是:如果在我的测试中,我想创建一个在某处使用 ftplib 的类的实例(我们称之为“A”)(即:A 类有 B 类的实例),我应该如何进行B 有一个调用 connect()) 的 FTP 对象?
import unittest
from mock import patch
class TestClass(unittest.TestCase):
@patch(???)
def test_1(self, mock_ftp_constructor):
mock_ftp = mock_ftp_constructor.return_value
a = A()
self.assertTrue(mock_ftp.connect.called)
if __name__ == "__main__":
unittest.main()
如果我使用另一个问题中给出的解决方案,我发现调用的是 ftplib 而不是 mock。我怎么知道 ftplib.FTP 的正确路径?