我的公司正在开发一个使用Spring Boot,Spring MVC,带有EclipseLink和动态编织的JPA的Web应用程序。 我的任务是准备UI和集成测试的实现,使用JUnit和@SpringBootTest启动应用程序并使用Selenium与它进行交互。@SpringBootTest干扰EclipseLink动态编织
截至Spring Boot Testing Features指出, 测试使用@SpringBootApplication
注释可以使用@MockBean
注释的定义嘲笑的Mockito的ApplicationContext的内豆类。 这是通过注册BeanFactoryPostProcessor
,MockitoPostProcessor
递归地扫描用@Component
或@Configuration
注释的类来注册用@MockBean
注解的类和字段。
不幸的是,这会导致在应该扫描它们的LocalContainerEntityManagerFactoryBean
实例化并设置LoadTimeWeaver
之前,加载这些类中引用的实体类,从而导致跳过这些实体的加载时间编织。 这会导致NoSuchMethodException
用于编织类似_persistence_propertyChange()
执行持久性操作时创建的方法。
是否可以使用@SpringBootTest
与EclipseLink和动态编织? 如果不是,那么对于最近的Spring Boot版本,设置集成测试 会是一个不错的选择?