0
我想在Go中寫一個項目的函數的單元測試,然後我遇到了一個我從未遇到過的問題。該函數用於監視Slack(消息傳遞平臺)的特定事件結構(由我正在使用的庫定義)的迴路中,並根據返回的事件(使用開關)進行響應。下面的代碼(大部分):如何在Golang中將數據發送到某個頻道進行測試?
func botLoop(s *SlackBot) {
select {
case rtmEvent := <-s.Rtm.IncomingEvents:
switch ev := rtmEvent.Data.(type) {
case *slack.MessageEvent:
o, err := s.HandleCommand(ev)
if err != nil {
fmt.Printf("%s\n", err)
s.Say(ev.Channel, "%s\n", err)
break
}
s.Say(ev.Channel, o)
case *slack.LatencyReport:
fmt.Printf("Current latency: %v\n", ev.Value)
default:
// fmt.Printf("Unexpected: %v\n", msg.Data)
}
}
如何傳遞「rtmEvents」到s.Rtm.IncomingEvent通道觸發我的代碼用於測試目的?有沒有辦法可靠地做到這一點?
Here's the documentation for the API library I'm using,如果這使事情變得更容易。