我的公司正在開發一個使用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版本,設置集成測試 會是一個不錯的選擇?