|
При использовании различных собственных нестандартных форматов данных, обычно приходится на всякое изменение в сохраняемой структуре менять также процедуру чтения и процедуру записи (иногда при хорошо организованном коде приходится делать только одно изменение на чтение/запись).
Таким образом, хотелось бы всегда быть уверенным, что структура нормально сохраняется, а после сохранения также нормально читается.
Самый простой и правильный путь протестировать это:
Однако в этом случае нужна ещё хорошая процедура сравнения тестовых структур данных. А при изменениях в структуре тестовых данных эту процедуру сравнения тоже нужно не забывать менять, что ещё меньше уменьшает надёжность.
Иногда для тестовой структуры уже бывает есть какой-то быстрый способ сохранения в текстовом виде или ещё каком (без чтения). В этом случае предыдущую тестовую последовательность действий можно заменить на следующую:
Ещё проще, если имеется способ не только сохранять структуры в каком-то текстовом виде, но и читать из неё (например xml). В таком случае банально тестовое заполнение можно делать в текстовом редакторе, а тестовая программа будет просто читать тестовое заполнение из текстового файла.
Чтение/запись текстового формата вообще выполняется в один шаг тестом типа exec_check . Тестовой программе просто говорится откуда и в каком формате читать, а сохраняет она сразу в результат теста.
Иногда бывает полезно протестировать чтение/запись самого эталона, так как часто при сохранении в текстовом формате происходит нормализация и текстовый пример, созданный в текстовом редакторе может прямо не совпадать с результатом после чтения/записи.
В таком случае нужно использовать поле result_file теста exec_check , так как на несколько тестов будет приходиться одинаковый эталон, то неплохо бы, чтобы они оставляли после себя разные результаты.
В некоторых совсем сложных случаях не бывает ни процедуры сравнения структур, ни сохранения их в текстовом виде. В таком случае протестировать "хоть что-то" можно следующим образом:
|