2016-06-29 3 views
-1

У меня есть этот сервис, что мне нужно создать тестовое устройство для:тест JUnit с дао создать и получить идентификатор

  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 на объект, но как установить идентификатор объекта с помощью теста Unit?

ответ

0

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

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

  2. Используйте некоторые из насмешливые рамки, т. Е. Mockito, mockite метод create() someObjectDao, установив id так, как вы хотите.