Как протестировать методы ввода-вывода, которые требуют файлов примеров? - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь написать тест с использованием жасмина для машинописного метода, который читает файл и обрабатывает его. Этот метод состоит из двух этапов (вне чтения файла): проверка файла и его обработка. Я хочу проверить, что метод выдает исключение, когда файл является недействительным.

Для моих тестов мне нужны файлы примеров для тестирования, поэтому мне было интересно, как лучше создать / сохранить репрезентативные тестовые файлы. Должен ли я создать их вручную и сохранить с помощью тестов? Должен ли я написать что-то, что генерирует файлы для тестирования? Написать что-то, что генерирует данные файла для тестирования? Что-то еще целиком?

Из других вопросов ( Ввод / вывод файла модульного тестирования ) Я вижу, что мне не нужно тестировать сам ввод / вывод, только функциональность метода, но мне нужны некоторые данные для тестирования метод с.

1 Ответ

0 голосов
/ 18 июля 2019

Как вы описываете, вы хотите проверить, что содержимое файлов правильно проверено.Содержимое файла - это просто данные, и для процедуры проверки не должно иметь значения, откуда на самом деле берутся данные.Это означает, что «содержимое файла» также может быть предоставлено как данные, которые фактически предоставляются непосредственно из тестового кода:

  • В простейшем случае данные могут быть просто константными строками или байтовыми массивами.
  • Если это станет немного сложнее, у вас могут быть некоторые вспомогательные методы тестирования, которые создают данные.
  • Вы можете даже рассмотреть возможность использования фактического компонента, который отвечает за создание данных, если он не нарушаетлюбой из ваших целей тестирования.

Это требует, чтобы вы могли каким-то образом обойти чтение содержимого файла, например, путем насмешки над операциями доступа к файлу.Или, отделяя чтение файла от проверки содержимого таким образом, что часть проверки уже получает некоторые данные в памяти для проверки и может быть проверена отдельно.

То, позволяет ли ваш сценарий пойти по этому пути,непонятно из твоего вопроса.Однако, если это возможно, у него есть несколько приятных свойств: ваши тесты легче поддерживать, потому что вы не имеете дело с несколькими файлами, но имеете все в одном месте (а именно файл с тестами).Вы меньше зависите от проблем файловой системы, таких как отсутствие доступа на запись или чтение, чувствительность к регистру имен файлов и т. П.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...