簡體   English   中英

Java Spring Boot集成測試數據庫修改和認證

[英]Java Spring Boot Integration Tests Database Modification and Authentication

我有一個測試控制器的集成測試。 我傳遞了一個請求並返回了響應,並且測試通過了。 但是,在發出請求之前,我必須向/authenticate端點發出請求以檢索令牌,以便可以將其放入請求的標頭中。 我有兩個問題

  1. 我在本地使用的用戶名和密碼可針對dev LDAP服務器進行驗證。 隨着應用程序部署到更高的環境,LDAP端點將更改為相應級別。 因此,在高於DEV的環境中,集成測試將失敗,因為該用戶名/密碼組合將無法使用。 那么,獲取用戶名/密碼以匹配環境的最佳方法是什么? 有沒有更好的方法來執行此操作,例如迫使spring完全忽略身份驗證?
  2. 集成測試測試所有控制器的端點,例如/add/get等。不幸的是,這實際上修改了數據庫(預期的)。 有什么方法可以運行這些測試,但實際上不能修改數據庫嗎?

1)在單元測試類中,如果要使用@TestPropertySource(properties = {"security.basic.enabled=false"})覆蓋您的安全設置,請使用@TestPropertySource(locations="classpath:test.properties")完全不同的屬性文件測試。

2)您可以使用模擬,或者如果您不想在集成測試中使用模擬,那么每次測試之后,您都必須使用類似以下的方法來清理數據庫:

@After      
public void tearDown() {
     cleanupDatabase();
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM