Wenn Sie einige Skripte schreiben, die autark sind, ist es eine schlechte Idee, das if __name__ == '__main__'
als Ort zum Schreiben von Tests zu verwenden?
Testlogik und Tests sollten nie Teil der "Produktion" (Produktion kann von Ihnen verwendet werden, für den Kunden freigegeben werden, usw.) sein. Es ist also eine schlechte Idee, sie irgendwo in Ihrem Skript zu haben.
Idealerweise haben Sie sie in separaten Dateien.
Es hängt wirklich von Ihrem Code und den Zwecken Ihres Skripts ab. Bei großen und komplexen Projekten müssen Sie sicher alle Ihre Tests an einem separaten Ort ablegen.
Aber während wir an etwas Kleinem arbeiten, könnte es eine gute Lösung sein, Tests zusammen mit Code zu haben - das ist die Grundidee von doctest
(es ist ein großartiges Python-Modul, mit dem Sie Tests in die Docstrings schreiben können). In diesem Fall sieht Ihr if __name__ == '__main__'
folgendermaßen aus:
Ich finde es schön und sauber.
Es empfiehlt sich, die Tests in separate Einheiten zu unterteilen, die das Unittest-Modul verwenden. Diese Trennung ermöglicht es Ihnen, den Hauptcode sauber zu halten (keine Notwendigkeit für viele Testhilfsfunktionen) und ermutigt Sie, gute umfassende Tests zu schreiben, da Sie nicht daran gehindert werden, den Hauptcode zu überlisten.
Tags und Links python unit-testing