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

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

在 go 測試文件中使用包級變量

在 go 測試文件中使用包級變量

Go
慕虎7371278 2022-06-27 16:15:34
我正在嘗試為這樣的文件編寫單元測試//file1.govar (    fileName = "/path/to/original/file.json")func DoSomething(){    // Read <fileName> and do some stuff}但是對于單元測試,我想使用 /path/to/dummy/file.json 供 DoSomething() 使用 file1_test.go 將與 file.go 在同一個包下編寫測試用例的正確方法是什么這個功能?將 fileName 變量修改為 /path/to/dummy/file.json 是個好主意嗎?還是我們應該修改 file1.go 以使其適合測試?這是使這些值可配置的標準嗎,以便它們可以在單元測試期間修改,例如在這種情況下的文件名,或者我們應該修改我們的函數,以便它可以直接處理字節流數據,以便在測試測試期間我們可以提供虛擬數據直接地?
查看完整描述

1 回答

?
慕勒3428872

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

使用配置/設置結構。在生產中,最好使用 YAML 來保存配置值


type Config struct{FileName string}

在 main.go


var conf Config

func main(){

   conf = LoadConfigFromYaml()

   DoSomething()

}


func DoSomething(){

// Read <fileName> from conf.FileName

}

在 main_test.go


func TestSomething(t *testing.T){

   conf = Config{FileName: "/path/to/dummy/file.json"}

   DoSomething()

}

它還允許您為每個測試設置不同的配置。


更好的方法是創建一個在初始化時接受 Config 并從 main 和 test 注入配置并避免使用main package變量的庫。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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