TI suis tout à fait nouveau à la Programmation Python et avez une question sur les tests à l'aide de Pytest. À un haut niveau, j'ai un programme qui prend 3 pièces de saisie de l'utilisateur et génère un fichier texte à la fin. Pour mes tests, je veux en gros de comparer les fichiers de mon programme achera, avec ce qu'elle devrait être.
Maintenant, je ne suis pas sûr de savoir comment aller sur le test. Le programme lui-même ne prend pas d'arguments, mais tout repose sur 3 morceaux de la saisie de l'utilisateur, sur lequel je vais utiliser monkeypatch à simuler. Dois-je créer un nouveau fichier appelé python program_test.py et ont méthodes ici que d'appeler le programme d'origine? J'ai essayé ceci, mais je vais avoir de la difficulté à réellement appeler le programme d'origine et l'envoi dans la simulation des entrées. Ou, dois-je avoir des tests dans le programme d'origine (qui n'a pas beaucoup de sens pour moi).
Je veux quelque chose comme ceci:
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)
Cela semble juste pour être en cours d'exécution le programme d'origine et je pense que sa à faire avec l'instruction import-dire qu'il n'est jamais à cours d'exécution test_1(), probablement parce que je n'ai jamais l'appeler? Toute aide serait appréciée!