Я хочу написать приложение, которое можно использовать для записи компакт-дисков (музыка). Я знаю, что в любом случае я должен проверить это на реальных компакт-дисках, но я не хочу делать это каждый раз, когда делаю небольшие изменения. Но я хочу знать и проверить, будут ли записаны нужные данные, чтобы вы не получили поврежденные компакт-диски.
Я использую библиотеку, которая предоставляет только API-интерфейсы для прямой записи на физический диск; это не позволяет вам записывать образ диска (который будет намного проще тестировать).
Как я могу проверить это, не тратя впустую CD и время на каждое изменение / несколько изменений, которые я делаю?
Ответы:
Простой ответ часто лучший: перезаписываемые компакт-диски?
Также для экономии времени пишите относительно небольшие файлы. Делайте только большие файлы время от времени.
источник
Если вы работаете в Linux, вы сможете настроить «устройство CD», которое является просто именованным каналом. Ваш API записывает на «устройство», а другой конец подключаете к программе, которая позволяет вам увидеть, что он делает / преобразовать его в образ диска. Там много вариантов. Смотрите эту статью для получения информации о именованных каналах.
Ответ Кевина намного проще, ИМО.
источник
Напишите как можно больше тестов, которые используют макет API библиотеки. Это позволяет вам тестировать ваш код в единицах. Это показывает, что ваш код работает внутри себя, предполагая, что библиотека работает так, как она должна.
В какой-то момент вам нужно будет провести интеграционное тестирование, которое на самом деле использует библиотеку. Но дело в том, что у вас уже есть уровень уверенности в своем собственном коде, прежде чем вы дойдете до этой точки. Интеграционные тесты, как вы видели, часто требуют больше времени и ресурсов. Столь тщательное модульное тестирование позволяет полностью не полагаться на интеграционное тестирование.
источник
О каком именно тестировании вы говорите?
Читая «Я не хочу делать это каждый раз, когда делаю небольшие изменения» , я полагаю, что вы говорите о модульном тестировании. .
Но позже вы добавите, что используете API, который отвечает за запись данных на компакт-диски. Если этот API-интерфейс протестирован и задокументирован правильно, вам не нужно иметь дело с фактическим процессом записи данных на компакт-диск, и вам не нужно тестировать его. В этом случае вы имеете дело с интеграционным тестированием , которое вам не нужно делать «каждый раз, когда вы вносите небольшое изменение» .
источник
ГУР,
Так как вы хотите протестировать свое программное обеспечение (не API или рекордер), как указал Крис, имитация API была бы необходима.
Для тестирования интеграции надежный регистратор «ISO» должен позволить вам автоматизировать тестирование содержимого компакт-диска путем анализа файла .iso.
На самом деле запись CD или DVD не даст окончательных результатов, поскольку вы не сможете определить, является ли причиной ошибки неисправный CD, неисправный рекордер или программная ошибка, если вы не хотите выполнять статистику качества путем записи нескольких копий тот же диск (который, видимо, нет).
Удачи!
источник