在python unittest中模拟选择性文件写入
我看了一下周围,但没有找到我要找的东西,我很确定这已经在别处得到了回答。我的函数中有两个文件写入,如下所示:在python unittest中模拟选择性文件写入,python,unit-testing,mocking,built-in,Python,Unit Testing,Mocking,Built In,我看了一下周围,但没有找到我要找的东西,我很确定这已经在别处得到了回答。我的函数中有两个文件写入,如下所示: def write_files(): with open("a.txt", 'w') as f_h: f_h.write("data1") with open("b.txt", 'w') as f_h: f_h.write("data2") from unittest.mock import patch, call, mock_open impo
def write_files():
with open("a.txt", 'w') as f_h:
f_h.write("data1")
with open("b.txt", 'w') as f_h:
f_h.write("data2")
from unittest.mock import patch, call, mock_open
import unittest
class Tester(unittest.TestCase):
def test_analyze(self):
with patch("builtins.open", mock_open(read_data="data")) as mf:
# mf.side_effect = [None, Exception()] ?
write_files()
if __name__ == '__main__':
unittest.main()
我如何有选择地模拟f_h.write(),以便其中一个返回异常,而另一个不返回异常?我试图设置副作用,但不清楚这是否合适。我试验过的测试代码如下所示:
def write_files():
with open("a.txt", 'w') as f_h:
f_h.write("data1")
with open("b.txt", 'w') as f_h:
f_h.write("data2")
from unittest.mock import patch, call, mock_open
import unittest
class Tester(unittest.TestCase):
def test_analyze(self):
with patch("builtins.open", mock_open(read_data="data")) as mf:
# mf.side_effect = [None, Exception()] ?
write_files()
if __name__ == '__main__':
unittest.main()
两件事:必须模拟上下文管理器,例如
\uuuuu enter\uuuu
的结果,并且必须对模拟文件句柄的write
方法产生副作用(例如\uuuu enter\uuuu
调用的结果):
两件事:必须模拟上下文管理器,例如
\uuuuu enter\uuuu
的结果,并且必须对模拟文件句柄的write
方法产生副作用(例如\uuuu enter\uuuu
调用的结果):