[英]Grails - How to unit test a service that uses a simple HTTP utility function?
我編寫了一個簡單的HTTP實用程序類,該類使用HTTP方法名稱和請求URL,然后返回響應。
在我的Grails應用程序中,一些服務將使用此實用程序來獲取某些Web API調用的結果。 但是,我不知道如何對這些服務進行單元測試。 該實用程序非常簡單,它僅使用HttpURLConnection
來執行HTTP請求,而沒有任何其他依賴項。
我應該如何對這些服務進行單元測試? 我是否應該將該實用程序作為服務的屬性,以便可以在該服務上注入並模擬該實用程序?
有什么建議么?
您可以創建一個MockHttpUtility,然后將其用於測試環境。
您可以修改resources.groovy,以便在測試時將模擬服務注入到您的服務/控制器中,而不是實際服務中。
switch(GrailsUtil.environment) {
case "test":
httpUtil(MockHttpUtil) {bean ->
bean.autowire = "byName"
}
}
這將適用於集成測試。
對於單元測試,您可以如下定義模擬服務
void testFoo() {
defineBeans {
httpUtil(MockHttpUtil)
}
}
您可以設計模擬http util,以使其在調用時返回預期的響應。 例如,您可以有一個構造函數或setter方法來接收預期的響應,並且當使用http方法和url調用實用程序方法時,它將返回給定的響應。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.