Я работаю над попыткой выполнить JUnit-тест, чтобы проверить функциональность DAO. (DAO создаст/прочитает отношение базового объекта/таблицы).
Проблема, с которой я сталкиваюсь, заключается в сохранении DAO (для не-тестового кода), который завершается с помощью внутреннего решения с использованием Spring/Hibernate, что устраняет обычные шаблоны *.hbm.xml
, что большинство примеров Я нашел содержащий.
Из-за этого у меня возникли проблемы с пониманием того, как настроить JUnit-тест для реализации DAO для создания/чтения (только очень простых функций) для HSQLDB в памяти. Я нашел несколько примеров, но использование внутреннего упорства означает, что я не могу расширить некоторые из классов, которые показывают примеры (я не могу правильно настроить приложение-context.xml).
Может ли кто-нибудь предложить какие-либо проекты/примеры, которые я мог бы рассмотреть (или любую документацию), чтобы лучше понять, как лучше всего реализовать эту тестовую функциональность? Я чувствую, что это должно быть очень просто, но я все время сталкиваюсь с проблемами при реализации примеров, которые я нашел.
изменить
Здесь мое решение для лучшей удобочитаемости, для тех, кто нуждается в руке, получая вещи:
-
Мой
TestClass
:@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath:applicationContextTest-Example.xml") @Transactional public class ExampleDaoTest extends AbstractTransactionalJUnit4SpringContextTests { @Resource(name = "sessionFactory") private SessionFactory exampleSessionFactory; @Resource(name = "exampleDao") private ExampleDao exampleDao;
-
Мой
applicationContext.xml
файл:<!-- List of Daos to be tested --> <bean id="exampleDao" class="org.myExample.ExampleDao"/> <!-- Datasource --> <bean id="example_dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="org.hsqldb.jdbcDriver"/> <property name="url" value="jdbc:hsqldb:mem:ExampleTest"/> <property name="username" value="sa"/> <property name="password" value=""/> </bean> <!-- Session Factory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="example_dataSource"/> <property name="annotatedClasses"> <list> <value>org.myExample.ExampleClass</value> </list> </property> <property name="hibernateProperties"> .... left to user to choose properties </property> </bean>