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

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

具有公共構(gòu)造函數(shù)的私有類型的表驅(qū)動(dòng)測(cè)試

具有公共構(gòu)造函數(shù)的私有類型的表驅(qū)動(dòng)測(cè)試

Go
蕭十郎 2022-10-10 10:31:37
我試圖減少我的 API 的表面積,所以我使我的app結(jié)構(gòu)不導(dǎo)出(使用小寫名稱),并且只公開了New函數(shù):package mylibtype app struct {}func New() *app {    return &app{}}但是現(xiàn)在,我想為這個(gè)東西寫一個(gè)表驅(qū)動(dòng)的測(cè)試,我不能mylib.app在一個(gè)結(jié)構(gòu)中保存一個(gè):package mylib_testimport (    "testing"    "mylib")func TestApp(t *testing.T) {    tests := []struct {        name string        app  private_type_public_new.app // This part doesn't work    }{        // ...    }    for _, tt := range tests {        t.Run(tt.name, func(t *testing.T) {        })    }}我有什么選擇?我應(yīng)該將應(yīng)用程序結(jié)構(gòu)公開(App)并保留所有未導(dǎo)出的字段嗎?我可以用高階函數(shù)做一些有趣的事情來存儲(chǔ)New函數(shù)實(shí)例以在子測(cè)試中實(shí)例化應(yīng)用程序嗎?還有什么?
查看完整描述

1 回答

?
慕勒3428872

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

我有什么選擇?我應(yīng)該將應(yīng)用程序結(jié)構(gòu)公開(App)并保留所有未導(dǎo)出的字段嗎?

是的,將其導(dǎo)出為Appgolang/lint(現(xiàn)已棄用)特別警告引用未導(dǎo)出類型的導(dǎo)出函數(shù),因?yàn)樗鼈兒茈y讓您的包的消費(fèi)者使用。例如,如果你指定x := mylib.New()了一個(gè) ,x的實(shí)例,除了它的類型之外*myapp.appgo-pls不會(huì)顯示任何關(guān)于這個(gè)變量的信息,這意味著你附加到它的任何描述性注釋都不會(huì)出現(xiàn)。

https://github.com/golang/lint/issues/210


查看完整回答
反對(duì) 回復(fù) 2022-10-10
  • 1 回答
  • 0 關(guān)注
  • 74 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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