Тест джунит с дао создать и получить идентификатор

У меня есть этот сервис, для которого мне нужно создать Unit test:

            SomeObject obj = new SomeObject();

            String objConfig = "<root id=%id% param1="something">....</root>"

            obj.setField1("value1");
            obj.setField2("value2");

            someObjectDao.create(obj);

            Long objId = obj.getId();
            obj.setConfig(objConfig.replace("%id%", objId.toString()));
            someObjectDao.update(obj);

Теперь проблема в том, что в реальном случае создание DAO назначит ID для объекта, но как мне установить ID объекта через модульный тест?

1 ответ

Вы можете сделать это двумя способами (если вы используете JUnit 4):

  1. Используйте реальный DAO и пометьте тестовый класс как @Transactional и @Rollback. Каждый тестовый метод будет открыт в отдельной транзакции, запись будет вставлена ​​в базу данных и обработана, как в реальной системе, но после отката выхода из метода произойдет.

  2. Используйте какой-нибудь фальшивый фреймворк, например, метод mockito, mock create() для someObjectDao, устанавливая id по своему усмотрению

Другие вопросы по тегам