Подтвердить что ты не робот

Junit для тестирования службы Spring и уровня DAO

Я работаю над приложением Spring (Spring 3.0) и после многоуровневой архитектуры, т.е. Controller -> Service -> DAO layers.

Я хочу написать unit test случаи для службы и слой DAO с помощью Junit.
Я проверил официальный сайт Spring, а также попробовал много других сайтов, но не смог найти простой и простой способ сделать это.

Может ли кто-нибудь предоставить мне некоторые полезные ресурсы?


РЕДАКТИРОВАТЬ:
Похоже, Mockito - хороший вариант. Любая хорошая ссылка для использования в Spring.

Спасибо, Алекс за предложение.

4b9b3361

Ответ 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.

Вам нужно больше информации? Является ли это решение применимым?