1
我在我的項目中使用gorm。我可以嘲笑這個數據庫orm進行沒有數據庫連接的測試嗎?我們有CI工具的問題,我沒有數據庫或數據庫,沒有足夠的數據進行測試。另一種方法是,我不想爲每次測試都設置一個數據庫,因爲在這些情況下,CI工具會每次創建一個容器來運行測試。Golang gorm mocking
這是測試數據庫相關方法的最佳方法嗎?我在我的解決方案中使用依賴注入,因此使用模擬數據庫很容易替換數據庫。但是gorm有很多orm相關的功能。
例如,這是一個處理程序:
func tokenIntrospectionHandler(db *gorm.DB) http.HandlerFunc {
return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
defer req.Body.Close()
token := req.FormValue("token")
var resp Response
json.NewEncoder(w).Encode(resp)
})
}
您可以設置一個淨康恩在你的測試用例來具體迴應測試查詢。另外,它似乎沒有tolenIntrospectionHandler使用數據庫,所以我不知道如何指導你編寫測試用例。 –
我不熟悉gorm並直接使用golang的「sql」包。但爲了測試我面向數據庫的代碼,我引入了接口,這些接口由「sql」包中聲明的具體類型自然實現,然後實現了我自己的實現這些接口的模擬對象。在代碼中的其他地方,我使用這些接口而不是具體的類型。我會在測試過程中注入模擬。 –