Например, у меня есть фрагмент кода, который генерирует управляющий файл SQL * Loader из этого шаблона (с использованием Python):
template = """
LOAD DATA
INFILE '%(file_path)s'
APPEND
INTO TABLE %(table_name)s
FIELDS TERMINATED BY "%(delimiter)"
OPTIONALLY ENCLOSED BY ""
(\n%(column_specifications)s\n)
"""
Есть только два способа, которыми я могу придумать для юнит-тестирования это:
- Придумайте входные данные, выясните, как должен выглядеть выходной сигнал, затем подтвердите, что выходной сигнал равен этому.
- Проверьте, что определенные строки, которые должны быть в файле, находятся в файле.
Для меня эти тесты представляют две разные крайности. Первый метод кажется очень хрупким, потому что я должен обновить тест, если я сделаю так же, как и изменить пробел. Вторая техника кажется почти бесполезной, потому что она на самом деле не проверяет, находится ли текст в нужном месте. Есть ли здесь какая-то счастливая среда, которая сделает мои тесты простыми?