Junit для тестирования службы Spring и уровня DAO
Я работаю над приложением Spring (Spring 3.0) и после многоуровневой архитектуры, т.е. Controller -> Service -> DAO layers
.
Я хочу написать unit test случаи для службы и слой DAO с помощью Junit.
Я проверил официальный сайт Spring, а также попробовал много других сайтов, но не смог найти простой и простой способ сделать это.
Может ли кто-нибудь предоставить мне некоторые полезные ресурсы?
РЕДАКТИРОВАТЬ:
Похоже, Mockito - хороший вариант. Любая хорошая ссылка для использования в Spring.
Спасибо, Алекс за предложение.
Ответы
Ответ 1
С точки зрения ресурсов документация по тестированию Spring очень хорошая. Здесь можно найти здесь.
Когда вы тестируете свой сервисный уровень, вы захотите использовать насмешливую библиотеку, такую как Mockito, чтобы высмеять ваши DAO и, следовательно, ваш уровень домена. Это гарантирует, что они являются истинными модульными тестами.
Затем, чтобы интегрировать тест DAO в базу данных, вы можете использовать служебные средства тестирования транзакций Spring, описанные в этой справочной документации.
Ответ 2
Не знаю много о ресурсах, но это не так сложно сделать, если у вас есть настройка dao + spring. Вам понадобится следующее:
-
Зависимости JUNIT. с maven, что-то вроде этого:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
</dependency>
-
Класс тестирования, который вы размещаете внутри src/test/java:
@TransactionConfiguration(defaultRollback = true)
@ContextConfiguration({ "classpath:test-spring-context.xml" })
@Transactional
@RunWith(SpringJUnit4ClassRunner.class)
public class SomeTests {
// ...
}
-
Контекстный файл для вашей установки spring, ссылающийся на ваш источник данных DAO, расположенный внутри src/test/resources.
Где-то в вашем тесте spring -context.xml:
<import resource="datasource-test.xml" />
Теперь, например, в eclipse вы можете запустить проект как тест JUNIT.
Вам нужно больше информации? Является ли это решение применимым?