MyBatis - Как составить карту результатов теста? - PullRequest
0 голосов
/ 06 декабря 2018

Документация mybatis гласит:

Всегда создавать ResultMaps постепенно.Модульные тесты действительно помогают здесь.Если вы попытаетесь создать гигантскую карту результатов, похожую на приведенную выше, сразу, скорее всего, вы ошибетесь, и с ней будет сложно работать.Начните с простого и развивайте его шаг за шагом.И юнит тест!Недостатком использования фреймворков является то, что они иногда представляют собой черный ящик (с открытым исходным кодом или нет).Лучший способ убедиться, что вы достигаете желаемого поведения, - это написать модульные тесты.Это также помогает иметь их при отправке ошибок.

Однако нигде в документации они не объясняют, как составить карту результатов теста.В их github wiki есть страница по модульному тестированию , но, похоже, она больше ориентирована на участников, а не на пользователей.Как мне написать модульные тесты для карт результатов, как они рекомендуют, когда мне кажется, что мне нужно создать полностью функциональную базу данных в памяти только для тестирования отображений?

Необходимость базы данных в памяти больше похожа на интеграционный тест, чем на модульный тест, и если в каком-либо из моих запросов используются специфичные для БД операторы SQL, такие как операторы SQL Server T-SQL, он не может должным образом протестировать в БД в памятидругого типа.Я что-то неправильно понимаю?

1 Ответ

0 голосов
/ 10 декабря 2018

Ваше понимание верно.

То, что в вики называется unit test, на самом деле является интеграционным тестом с базой данных в памяти.Вы можете попытаться указать макет DataSource, который возвращает макет Connection и т. Д. До ResultSet, но это не очень практично.Интеграционный тест здесь лучше подходит.

Я бы сказал, что главное не в unit-test (который в этом контексте должен был называться просто тест), а в инкрементальной части.Сообщения об ошибках mybatis в средствах отображения иногда являются загадочными, поэтому использование короткого (как TDD) цикла обратной связи помогает справиться с этим.Если вы запускаете тесты для одного маппера, который вы работаете в цикле редактирования-запуска, может быть довольно коротким.

...