我熟悉Spring數據JPA和我測試用這種聲明的庫(春季4):集成測試與Spring引導和MySQL
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {PersistenceConfig.class})
@Sql({"classpath:it-data.sql"})
public class MyRepositoryIT {
@Autowired
private MyRepository repository;
@Test
public void someTest() {
...
}
}
所以我負責創建MySQL的模式和表但測試類會插入測試數據(it-data.sql),而src/test/resources/persistence.properties
包含數據源配置。
現在我想在Spring Boot項目中做同樣的事情。我編寫了一個簡單的項目(一個Controller使用服務來檢索數據,這要歸功於從Repository獲取來自MySQL數據庫的數據)。
問題是我無法編寫一個簡單的測試,只測試存儲庫(我不想加載整個應用程序只是爲了測試存儲庫),我得到上下文錯誤或數據源配置錯誤。
從
@RunWith(SpringRunner.class)
public class MyRepositoryIT {
@Autowired
private MyRepository repository;
@Test
public void someTest() {
...
}
}
啓動和複製src/main/resources/application.properties
到src/test/resources/application.properties
(只是改變了架構名稱),我使用@DataJpaTest
,@ContextConfiguration(classes = Application.class)
,@Sql
,@SpringBootTest
,@AutoConfigureTestDatabase
,@DatabaseSetup
等,但沒有任何作品試圖萬噸組合。
因此,知道我有一個MySQL數據庫,該數據庫已經存在於我的測試中,我應該使用什麼註釋來向其中插入數據,然後測試自動裝載的存儲庫?
謝謝。
存儲庫集成測試,所以沒有什麼嘲笑;-) –