我之前问了一个关于模拟和测试的问题,它帮助我完成了测试的所有方面。如何测试SFTP连接。
我有一个方法:
def _transfer_file(self, my_file):
try:
with pysftp.Connection(‘host’, username=username, password=password) as sftp:
sftp.put(my_file)
sftp.close()
return True
except Exception as e:
# log an error with exception
return None
我的问题是如何测试该特定方法?我认为简单验证连接是否可以成功打开就足够了但我该怎么做?我的测试最终会发送“my_file”,我真的不想这样做。
我怀疑我需要使用@ mock.patch(某物)伪造连接?我不太确定。有没有人对如何测试这种情况有任何建议?
答案 0 :(得分:0)
我的解决方案是不要模仿任何东西,而是改变我的方法如下:
try:
with pysftp.Connection(‘host’, username=username, password=password) as sftp:
if(my_file):
sftp.put(my_file)
sftp.close()
return True
然后在测试中我只为my_file值提供'None'。这将打开连接然后关闭它而不做任何事情,但让我测试该开放的成功。