我在我们的Spring MVC应用程序中集成了Hibernate Search。
因此我们有一个" BuildSearchIndex"在应用程序开始时调用以创建搜索索引的类:
@Component
public class BuildSearchIndex implements ApplicationListener {
@PersistenceContext(unitName = "entityManagerFactory")
private EntityManager _entityManager;
@Override
public void onApplicationEvent(ApplicationEvent event) {
try {
FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(_entityManager);
fullTextEntityManager.createIndexer().startAndWait();
} catch (InterruptedException e) {
System.out.println("An error occurred trying to build the search index: " + e.toString());
}
return;
}
}
在正常应用程序运行中,一切都很好。
但是当我尝试启动Integration测试时,我总是得到一个IllegalArgumentException,EntityManager为null。
IntegrationTest的类定义如下所示:
@ActiveProfiles("test")
@WebAppConfiguration
@TransactionConfiguration(defaultRollback = false)
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
public class DummyServiceIntTest extends AbstractTransactionalJUnit4SpringContextTests {
}
如何在此集成测试中正确注入实体管理器?