第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在 go 中模擬函數(shù)?

如何在 go 中模擬函數(shù)?

Go
三國(guó)紛爭(zhēng) 2023-05-04 17:23:14
package mainimport (    "net/http"    "sync"    "time")type SessionInterface1 interface {    doLoginAndReadDestinations1() bool}type Session1 struct {    sessionCookie string    mux           sync.Mutex    sessionTime   time.Time    targetAddress string    currentJwt    string    transport     *http.Transport}var currentSession1 Session1func main() {    currentSession1.verifyLogin1()}func (s *Session1) doLoginAndReadDestinations1() bool {    ..logic...    ... for example return true}func callDest1(si SessionInterface1) bool {    return si.doLoginAndReadDestinations1()}func (s *Session1) verifyLogin1() bool {    return callDest1(s)}我想創(chuàng)建單元測(cè)試并模擬 doLoginAndReadDestinations1 我嘗試為此方法創(chuàng)建接口并創(chuàng)建測(cè)試func test1(t *testing.T) {    type args struct {    }    tests := []struct {        name string        args args        want bool    }{{        name: "test",        args: args{},        want: false,    }}    for _, tt := range tests {        t.Run(tt.name, func(t *testing.T) {            var s1 *Session1            count := 10            s1 = &Session1{"", sync.Mutex{}, time.Now(), "", "", nil}            var got1 = s1.verifyLogin()            if got1 != tt.want {                t.Errorf("getJwt() = %v, want %v", got, tt.want)            }        })    }}我不知道如何在測(cè)試中更改函數(shù) doLoginAndReadDestinations1 的邏輯并更改第一個(gè) main 中的邏輯
查看完整描述

1 回答

?
躍然一笑

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊

您將需要抽象出您想要模擬的所有內(nèi)容。與其將依賴項(xiàng)解析為具體實(shí)現(xiàn),不如使用接口。然后您將能夠創(chuàng)建一個(gè)將實(shí)現(xiàn)此接口的模擬。

一般來說,我會(huì)建議你stretr/testify進(jìn)行測(cè)試。它有以下方法:

  1. 斷言

  2. 要求

  3. 嘲笑

  4. 套房

該庫(kù)將幫助您構(gòu)建測(cè)試、編寫測(cè)試并刪除樣板代碼。它內(nèi)部有模擬機(jī)制


查看完整回答
反對(duì) 回復(fù) 2023-05-04
  • 1 回答
  • 0 關(guān)注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)