亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用內部函數進行戈朗 http 處理程序測試

使用內部函數進行戈朗 http 處理程序測試

Go
慕容森 2022-10-04 15:48:40
我想為我的http處理程序構建一個測試部分,我想使用http處理程序函數,但我想有單獨的函數來模擬處理的數據庫部分。我想到的是這樣的:package mainimport (    "log"    "testing")// DB functionstype UserDBFunctions interface {    InsertUser() string}type UserDB struct {}func (u UserDB) InsertUser() string {    return "hello"}// http handler functionstype UserHandlerFunctions interface {    Register() string}type UserHandler struct {    userDb *UserDB}func newUserHandler() UserHandler {    return UserHandler{userDb: new(UserDB)}}func (u UserHandler) Register() string {    str := u.userDb.InsertUser()    return str + " world"}func main() {    var i UserHandlerFunctions = newUserHandler()    str :=  i.Register()    log.Println(str)}// test functionstype FakeUserDBFunctions interface {    InsertUser() string}type FakeUserDB struct {}func (u FakeUserDB) InsertUser() string {    return "bye"}func newFakeUserHandler() UserHandler {    return UserHandler{userDb: *UserDB(&FakeUserDB{})}}func TestRegisterUser(t *testing.T) {    t.Run("register user", func(t *testing.T) {        var i UserHandlerFunctions = newFakeUserHandler()        str := i.Register()        log.Println(str)    })}因此,第一個接口是針對真正的數據庫函數的,然后是調用數據庫函數的http處理程序,在main()函數下面應該有帶有數據庫函數模型的測試。但這部分不起作用。如何將新用戶處理程序中的真實界面替換為模型。
查看完整描述

1 回答

?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

用戶處理者應使用用戶數據庫功能而不是用戶數據庫。

type UserHandler struct {
    userDb UserDBFunctions
}

這是修改后的一個 https://play.golang.org/p/nLiaomKA2NH


查看完整回答
反對 回復 2022-10-04
  • 1 回答
  • 0 關注
  • 101 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號