Как я могу проверить запрос HQL с помощью тестов JUnit?тестирование запроса HQL на hbm2dll с помощью Junit
Я сопоставляются Entity Класс:
@Entity
@Table(name = "DOE")
public DomainObjectEntity {
//some attributes
}
, который представляет объекты домена:
public class DomainObject {
//some attributes
}
У меня также есть интерфейс хранилища для моих доменных объектов:
public interface DomainObjectRepository {
/**
* Gets entity by some attribute
*
*/
DomainObject getDomainObjectByObjectId(String objectId);
}
этот интерфейс реализован в
@Repository
public class DomainObjectRepositoryImpl implements DomainObjectRepository {
@Inject
private DomainObjectEntityJPARepository entityRepository;
@Override
public DomainObjectgetDomainObjectById(String parcelId) {
//this converts my entity to domain object
return entityRepository.findByDomainObjectId(DomainObjectId.getStr()).getDomainObject();
}
}
мой JPA Entity хранилище выглядит следующим образом:
public interface DomainObjectEntityJPARepository extends JpaRepository<DomainObjectEntity, String> {
/**
* get DomainObject with requested id
*
* @param objectId - objects id
* @return DomainObject
*/
@Query("some query to be tested")
DomainObjectEntity findByDomainObjectId(@Param("objectId") String objectId);
}
и, наконец, я хочу написать простой тест JUnit, чтобы проверить, если запрос на findByDomainObjectId
возвращает правильный объект. Я думаю, что мой тест должен выглядеть следующим образом:
- создать тестовый объект поместить в БД
- получить объект из БД
- сравнения объектов
я выставиться в hbm2dll с import.sql создавать и заполнять мою БД, но как я могу получить к ней доступ из теста Junit, вызвав метод findByDomainObjectId
?
спасибо, это на самом деле мне очень помогло! Однако я решил сделать модульные тесты, так как я только хотел проверить querry, предоставит решение, которое работало в секунду –