Общей задачей в программах, над которыми я работал в последнее время, является некоторая модификация текстового файла. (Привет, я нахожусь в Linux, все в файле, и я делаю крупномасштабный системный администратор.)
Но файл, который изменяет код, может отсутствовать на моем рабочем столе. И я, вероятно, не хочу изменять его, если он находится на моем рабочем столе.
Я читал об модульном тестировании в Dive Into Python, и довольно ясно, что я хочу делать, тестируя приложение, которое преобразует десятичные числа в Roman Numerals (пример в DintoP). Тестирование хорошо самодостаточно. Вам не нужно проверять правильность программы PRINTS, вам просто нужно проверить, что функции возвращают правильный вывод на данный вход.
В моем случае, однако, нам нужно проверить, что программа правильно модифицирует свою среду. Вот что я придумал:
1) Создайте "оригинальный" файл в стандартном местоположении, возможно, /tmp.
2) Запустите функцию, которая изменяет файл, передавая ему путь к файлу в /tmp.
3) Убедитесь, что файл в /tmp был правильно изменен; pass/fail unit test соответственно.
Это кажется мне клочковым. (Получает даже kludgier, если вы хотите убедиться, что резервные копии файла созданы правильно и т.д.) Кто-нибудь придумал лучший способ?