|
Как писать unit тесты для методов возвращающих PDF файл ?
|
|||
---|---|---|---|
#18+
Как писать тесты для методов возвращающих PDF файл ? Или еще какую-то сложную сущность - например большой текстовый файл и т.д. Если писать Unit тест на части алгоритма, то как нам это гарантирует, что весь алгоритм правильно работает ? Проверять на размер сгенеренного файла или даже на построчное совпадение текстового файла ? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2019, 12:00 |
|
Как писать unit тесты для методов возвращающих PDF файл ?
|
|||
---|---|---|---|
#18+
WaspNewCore, Разделяете и властвуете. Метод, который возвращает PDF файл тестируется на сам факт возрата нужных данных, при этом полученные данные не тестируются, даже файла может не быть. Сервис, который создаёт PDF тестируется отдельно, обычно не нужно тестировать правильную генерацию PDF, так как скорее всего вы используете стороннюю библиотеку для генерации PDF и она должна быть протестирована разработчиком. Не нужно тестировать чужие либы. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2019, 12:22 |
|
Как писать unit тесты для методов возвращающих PDF файл ?
|
|||
---|---|---|---|
#18+
Ты имеешь в виду проверить что возвращенный файл совпадает с ожидаемым? Ну, например, я бы через это сделал: HashAlgorithm Class ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2019, 12:24 |
|
Как писать unit тесты для методов возвращающих PDF файл ?
|
|||
---|---|---|---|
#18+
fkthat Ты имеешь в виду проверить что возвращенный файл совпадает с ожидаемым? Ну, например, я бы через это сделал: HashAlgorithm Class ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2019, 12:27 |
|
Как писать unit тесты для методов возвращающих PDF файл ?
|
|||
---|---|---|---|
#18+
Shocker.Pro, fkthat, Согласен. Такое не подходит. Изменение хотя бы 1 бита поменяет весь хэш. А 1 битом может оказаться любая вставка временного штампа. Т.е. как я вижу, нужен какой то интеллектуальный парсер. Фактически нужно сверять сгенеренный текст по строчно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2019, 12:33 |
|
Как писать unit тесты для методов возвращающих PDF файл ?
|
|||
---|---|---|---|
#18+
Shocker.Pro fkthat Ты имеешь в виду проверить что возвращенный файл совпадает с ожидаемым? Ну, например, я бы через это сделал: HashAlgorithm Class +1, такие тесты создадут только проблемы ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2019, 12:35 |
|
Как писать unit тесты для методов возвращающих PDF файл ?
|
|||
---|---|---|---|
#18+
WaspNewCore Т.е. как я вижу, нужен какой то интеллектуальный парсер. Фактически нужно сверять сгенеренный текст по строчно. Зачем? Что именно вы хотите протестировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2019, 12:36 |
|
Как писать unit тесты для методов возвращающих PDF файл ?
|
|||
---|---|---|---|
#18+
hVostt, На данный момент мой алгоритм генерит довольно большой объем текста. В процессе создается промежуточная объектная модель. А затем эти объекты преобразуются в текст (через ToString) конструктором. Причем у этого конструктора довольно сложная логика. Например объект HelloWorld генерит строку "Привет Мир". А объект SayGoodbye может написать "ну шо, я пошел ?" или "до свидания" в зависимости от установленного свойства "bool ПоПацански?". Так вот сам генератор использует эти мелкие объекты и добавляет своей логики. Он может обернуть в скобочки что-то, где то сделать ToTitleCase. В итоге мне нужно протестировать итоговый документ, который может состоять из объемного текста. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2019, 12:45 |
|
Как писать unit тесты для методов возвращающих PDF файл ?
|
|||
---|---|---|---|
#18+
WaspNewCore Проверять на размер сгенеренного файла или даже на построчное совпадение текстового файла ? Если pdf, то надо по идее тестить разметку, чтобы ничего не слиплось и не съехало. А это уже проверка двух картинок на схожесть. WaspNewCore Т.е. как я вижу, нужен какой то интеллектуальный парсер Если у тебя тупо txt, то там нечего проверять. Если pdf, то парсер может спарсить тебе весь текст, а по факту там ничего не видно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2019, 12:52 |
|
Как писать unit тесты для методов возвращающих PDF файл ?
|
|||
---|---|---|---|
#18+
WaspNewCore, Так выхлоп своего парсера тестируй отдельно, он никакого отношения к пдф не имеет. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2019, 12:53 |
|
Как писать unit тесты для методов возвращающих PDF файл ?
|
|||
---|---|---|---|
#18+
WaspNewCore На данный момент мой алгоритм генерит довольно большой объем текста. В процессе создается промежуточная объектная модель. А затем эти объекты преобразуются в текст (через ToString) конструктором. Причем у этого конструктора довольно сложная логика. Например объект HelloWorld генерит строку "Привет Мир". А объект SayGoodbye может написать "ну шо, я пошел ?" или "до свидания" в зависимости от установленного свойства "bool ПоПацански?". Так вот сам генератор использует эти мелкие объекты и добавляет своей логики. Он может обернуть в скобочки что-то, где то сделать ToTitleCase. В итоге мне нужно протестировать итоговый документ, который может состоять из объемного текста. Вам надо протестировать ту структуру данных, которая попадает для наполнения и генерации PDF, а не генерацию PDF. Если у вас генерация PDF содержит логику извлечения данных и формирования структуры, то всё печально, тестировать это будет сложно. Т.е. у вас должна быть полностью готовая и наполненная Model, которая передаётся в функцию генерации PDF, которая берёт шаблон PDF и заполняет его данными из полученной структуры. Таким образом достаточно тестировать правильную генерацию Model, а не полученный PDF, так как у вас нет задачи испытывать алгоритмы генерации PDF, если конечно вы их не полностью сами писали. Но и тогда, их нужно тестировать совершенно отдельно . ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2019, 12:54 |
|
Как писать unit тесты для методов возвращающих PDF файл ?
|
|||
---|---|---|---|
#18+
crutchmaster Если у тебя тупо txt, то там нечего проверять. Так как раз таки есть чего. Проверить итоговый текст же ! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2019, 12:55 |
|
Как писать unit тесты для методов возвращающих PDF файл ?
|
|||
---|---|---|---|
#18+
hVostt если конечно вы их не полностью сами писали. Дело обстоит именно так. Алгоритм генерации модели и алгоритм ее конвертации сам писал. Нужно протестировать обе эти части. Как протестировано сгенеренную объектную модель то понятно. А вот итоговый результат в виде текста, получается, нужно проверять на точную генерацию видимо. Это то мне и не нравится. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2019, 12:58 |
|
Как писать unit тесты для методов возвращающих PDF файл ?
|
|||
---|---|---|---|
#18+
WaspNewCore Так как раз таки есть чего. Проверить итоговый текст же ! И что, есть какая-то проблема в том, чтобы сравнить две строки? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2019, 13:06 |
|
Как писать unit тесты для методов возвращающих PDF файл ?
|
|||
---|---|---|---|
#18+
WaspNewCore Дело обстоит именно так. Алгоритм генерации модели и алгоритм ее конвертации сам писал. Нужно протестировать обе эти части. Тестируйте отдельно независимо от данных. WaspNewCore А вот итоговый результат в виде текста, получается, нужно проверять на точную генерацию видимо. Это то мне и не нравится. Протестируйте обе части вашего решения отдельно. Если хотите в комплексе, вам придётся сопровождать ваши тесты, это может быть дорого. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2019, 13:21 |
|
Как писать unit тесты для методов возвращающих PDF файл ?
|
|||
---|---|---|---|
#18+
Shocker.Pro fkthat Ты имеешь в виду проверить что возвращенный файл совпадает с ожидаемым? Ну, например, я бы через это сделал: HashAlgorithm Class Конечно провалит. Потому что если имеем: "наш тест -> наш компонент -> чужая либа", то это неправильно. А по-правильному: "наш тест -> наш компонент -> наш мок чужой либы". Из исходного посыла непонятно что автору надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2019, 13:36 |
|
|
start [/forum/topic.php?fid=20&fpage=13&tid=1398684]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 190ms |
0 / 0 |