我的項目包括各種使用第三方API的彈簧啟動。@Service我們已經為每個這樣的服務編寫了一個模擬類,并且我們以這樣的方式運行系統測試,即Spring Boot選擇模擬的類而不是真實的類(使用)。@Profile("test")這樣做的動機是:僅測試邏輯(即使這可以通過單元測試來完成)根據經驗測試系統是否線程安全我們不能廣泛使用我們的API(速率限制),但我們希望在足夠多的項目上運行我們的系統。我的問題:您是否提倡將這種方法用于系統測試?(所有組件都被嘲笑)如果是這樣,像莫基托這樣的模擬框架能做到嗎?Mockito的全部意義不在于自己編寫模擬類,而是如何在多個bean使用服務的系統測試中完成它?
1 回答

瀟瀟雨雨
TA貢獻1833條經驗 獲得超4個贊
這是通過模擬對外部服務的調用來對服務進行單元測試的好方法。您可能希望將測試分為測試和測試。通常,單元測試通過使用存根類(如您所做的那樣)或使用模擬庫(如 mockito)來模擬任何外部服務調用,并且您模擬服務的返回值。unit
integration
@Profile
在集成測試中,這將是一個更好的系統測試,您將使用通過“模擬”外部服務的響應的模擬庫(即WireMock)提供的存根文件。如果外部 API 返回 JSON,則可以讓一個或模擬庫為實際的 JSON 響應提供服務。通過執行此操作,您正在測試您的服務是否確實進行了 API 調用,并對存根結果執行了操作。您的服務不會調用實際的 API URL,而是讓它調用您的控制器或 WireMock URL。Controller
Controller
添加回答
舉報
0/150
提交
取消