Я довольно новичок в программировании на Python, и у меня есть вопрос о тестировании с использованием Pytest. На высоком уровне у меня есть программа, которая принимает 3 части пользовательского ввода и в конце генерирует текстовый файл. Для моих тестов я хочу в основном сравнить файлы, которые выводила моя программа, с тем, какими они должны быть.
Теперь я не знаю, как приступить к тестированию. Сама программа не принимает аргументов, а просто полагается на 3 части пользовательского ввода, для моделирования которых я буду использовать monkeypatch. Могу ли я создать новый файл python под названием program_test.py и есть ли здесь методы, которые вызывают исходную программу? Я пробовал это, но у меня возникли проблемы с вызовом исходной программы и отправкой смоделированных входных данных. Или у меня есть тесты в оригинальной программе (что для меня не имеет особого смысла).
Я хочу что-то вроде этого:
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)
Это просто кажется запуском исходной программы, и я думаю, что это связано с оператором импорта, т. Е. он никогда не запускает test_1 (), вероятно, потому, что я никогда его не вызываю? Любая помощь будет признательна!