Самый важный принцип состоит в том, чтобы организовать ваш код так, чтобы сложность заключалась в функциях (или методах), которые поддаются простому модульному тестированию - другими словами, в функциях, которые не имеют отношения к командной строке или интерактивнымхарактер более широкой программы.Затем приклейте эти функции к тонкому внешнему слою, который обеспечивает командную или интерактивную функциональность.Этот клей, как правило, будет очень простым и, возможно, не стоит того, чтобы его тестировать.Если для этого требуется какое-либо тестирование, вы часто можете сделать это с небольшим количеством базовых сквозных выполнений (например, для сценария командной строки - тест, использующий модуль Python subprocess
для запуска вашей программы точно так же, как пользовательБудет)