Тестирование создания файлов Wrapper C # .Net - Мысли - PullRequest
1 голос
/ 28 июля 2010

Это, вероятно, вопрос noob, который я получу намеченным, но здесь идет ... Извините за длину, которую пытались сделать как можно более короткой.

BackGround

Я работаю над приведением в порядок кода, который я унаследовал в моей новой роли.Итак, я представляю тесты по мере того, как я работаю над разделами / ошибками / новыми функциями.Одной из этих функций является функция печати счета, счет-фактура генерируется из файла rpt Crystal Report.Уже была небольшая оболочка для базовых функций Crystal, я просто хочу протестировать ее и убедиться, что мы создаем файлы по мере необходимости.

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

Я также пытался смоделировать некоторые операции ввода-вывода, чтобы можно было выполнить модульное тестирование оболочки, но здесь у меня проблемы с moq, которые не нравятся Crystal ReportDocumentучебный класс.Кроме того, мне пришлось по-настоящему изменить структуру класса, чтобы можно было проводить тестирование, если бы я действительно делал это (вроде как я должен), но публичная публикация только для того, чтобы я мог вставить тестовые данные, кажется немного неправильной.

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

Большое спасибо.

1 Ответ

0 голосов
/ 28 июля 2010

Я бы не стал беспокоиться о модульном тестировании этого класса, потому что это класс интеграции по своей природе.Реализация должна быть довольно простой (просто связывание методов с базовыми объектами отчетов Crystal и т. Д.), Поэтому я бы даже не удосужился провести специальный интеграционный тест для этого отдельного класса.Однако вы должны покрыть это с помощью приемочных / вышестоящих интеграционных тестов.Я не уверен, как работает Crystal Reports, но в идеале вы хотели бы сравнить pdf в двоичном виде с известной хорошей версией (это будет работать, только если сгенерированные файлы всегда одинаковы).

...