2
Arquillian 및 Wildfly 8.2를 사용하여 litte 통합 테스트를 구현하려고합니다.
엔티티 관리자를 통한 지속 및 찾기가 작동하지만 쿼리를 사용하면 아무 것도 찾을 수 없습니다. 어떤 종류의 쿼리가 지속 된 엔티티를 찾지 못합니다
@RunWith(Arquillian.class)
public class VoteServiceTest {
@Inject
private EntityManager entityManager;
@Before
public void createEntityManager() {
entityManager.persist(user);
entityManager.persist(vote);
}
@Test
public void justATest() {
Assert.assertTrue(entityManager.find(User.class, 1L) != null); // Works
Assert.assertTrue(entityManager.find(Vote.class, 4L) != null); // Works
Assert.assertTrue(entityManager.createQuery("SELECT c FROM Vote c", Vote.class).getResultList() == 1); // Fails
}
@Deployment
public static JavaArchive createDeployment() {
return ShrinkWrap.create(JavaArchive.class).addPackages(true, "de/...")
.addAsResource("META-INF/persistence.xml", "META-INF/persistence.xml")
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
}
}
의 persistence.xml :
<persistence ...>
<persistence-unit name="test" transaction-type="RESOURCE_LOCAL">
<class>de....Vote</class>
<class>de....User</class>
<properties>
<property name="hibernate.hbm2ddl.auto" value="create"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
<property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/>
<property name="hibernate.connection.url" value="jdbc:hsqldb:mem:test"/>
<property name="hibernate.show_sql" value="true"/>
</properties>
</persistence-unit>
</persistence>
나는 무엇을 그리워 했습니까?
"엔티티가 누락되었습니다."를 정의하십시오. 정확히 어떤 일이 일어날까요? –
'voteRepository.findAll()'은 1 개의 항목을 포함하는 목록을 반환해야하지만 그것은 비어 있습니다. – CSchulz