Как я могу проверить запрос HQL с помощью тестов JUnit?Тестирование HQL с 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
возвращает правильный объект. Я думаю, что мой тест должен выглядеть следующим образом:
- создать объект поместить в БД
- получить объект из БД
- сравнения объектов
Как я могу написать такой тест?
Любые хорошие примеры тестирования запроса HQL с помощью junit и репозиториев?
Я думаю, что это можно решить с помощью mockito – SpringLearner
@SpringLearner у меня была эта идея, но если бы я издевался над '' findByDomainObjectId'', этот тест не был бы бессмысленным, поскольку он не тестировал бы querry? –
, если вы хотите проверить точный запрос, вам нужно попасть в базу данных. В общем модульном тестировании мы даем некоторый результат и выполняем его. Аналогично, вы также можете тестировать с помощью mock-объектов. – SpringLearner