簡體   English   中英

Grails-如何對使用簡單HTTP實用程序功能的服務進行單元測試?

[英]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.

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