【发布时间】:2021-11-24 03:37:36
【问题描述】:
TI 对 Python 编程非常陌生,并且有一个关于使用 Pytest 进行测试的问题。概括地说,我有一个程序,它接受 3 条用户输入并最终生成一个文本文件。对于我的测试,我想基本上比较我的程序输出的文件和它应该是什么。
现在,我不确定如何进行测试。该程序本身不接受任何参数,但仅依赖于 3 条用户输入,我将使用 monkeypatch 来模拟。我是否创建了一个名为 program_test.py 的新 python 文件并在此处有调用原始程序的方法?我已经尝试过了,但是我在实际调用原始程序并发送模拟输入时遇到了麻烦。或者,我是否在原始程序中进行了测试(这对我来说没有多大意义)。
我想要这样的东西:
import my_program
def test_1():
inputs = iter(['input1', 'input2', 'input3'])
monkeypatch.setattr('builtins.input', lambda x: next(inputs))
my_program
# now do some assertion with some file comparison
# pseudocode
assert filecompare.cmp(expectedfile, actualfile)
这似乎只是在运行原始程序,我认为它与 import 语句有关,即它从未运行 test_1(),可能是因为我从未调用它?任何帮助将不胜感激!
【问题讨论】:
标签: python python-3.x testing pytest monkeypatching