[問題] GOlang 怎麼測試 chan type function

看板Programming作者 (Braves)時間1年前 (2023/02/08 14:48), 編輯推噓0(0016)
留言16則, 3人參與, 1年前最新討論串1/1
小弟這週接觸 golang,是一位新手 目前遭遇到一個問題, 測試一個會 return chan type 的 func 測試程式呼叫到此 func 時,會 block 就此沒有回應 想問版上大大們,該如何正確測試這類型的 function ? 有關詳細程式碼描述放在 stack overflow 連結如下, https://stackoverflow.com/questions/75381842/golang-how-to-test-function-that-return-channel-type -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.149.125 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1675838914.A.122.html

02/08 15:15, 1年前 , 1F
Done似乎要回傳一個chan內含nil
02/08 15:15, 1F

02/08 15:18, 1年前 , 2F
試過了 在DoAndReturn回傳 還是不work
02/08 15:18, 2F

02/08 15:29, 1年前 , 3F
回傳chan error放nil一樣錯誤喔?
02/08 15:29, 3F

02/08 15:39, 1年前 , 4F
你直接return make(chan err), 然後丟nil
02/08 15:39, 4F

02/08 15:40, 1年前 , 5F
進去吧。直接給nil,你等半天也不會結束
02/08 15:40, 5F

02/08 15:44, 1年前 , 6F
補充,總之不能直接return nil, 它會卡
02/08 15:44, 6F

02/08 15:45, 1年前 , 7F
你要產一個make(chan error), 然後那個
02/08 15:45, 7F

02/08 15:45, 1年前 , 8F
func() chan error那邊return那個chan
02/08 15:45, 8F

02/08 15:45, 1年前 , 9F
最後用go func丟個nil進去那個chan吧
02/08 15:45, 9F

02/08 16:08, 1年前 , 10F
大大 嘗試過你們的方式
02/08 16:08, 10F

02/08 16:09, 1年前 , 11F
改法補充在stackoverflow最後面 不work
02/08 16:09, 11F

02/08 21:47, 1年前 , 12F
你不能把ch<-nil放在那,會卡在那邊,請用go
02/08 21:47, 12F

02/08 21:47, 1年前 , 13F
func(){ch <- nil } 來丟
02/08 21:47, 13F

02/08 21:51, 1年前 , 14F
或是你make chan要加大buffer不然會堵塞
02/08 21:51, 14F

02/08 23:08, 1年前 , 15F
CreateVService有mock嗎
02/08 23:08, 15F

02/09 16:45, 1年前 , 16F
謝各位熱心回答,正確寫法補充在文章內
02/09 16:45, 16F
文章代碼(AID): #1ZuqN24Y (Programming)
文章代碼(AID): #1ZuqN24Y (Programming)