【发布时间】:2021-10-17 17:16:36
【问题描述】:
我正在使用 go lib:github.com/googollee/go-socket.io 我想知道如何为连接事件编写一个非常简单的测试,例如,如果我想检查没有返回错误。
package main
import (
"fmt"
"log"
"net/http"
socketio "github.com/googollee/go-socket.io"
)
func main() {
server := socketio.NewServer(nil)
server.OnConnect("/", func(s socketio.Conn) error {
s.SetContext("")
fmt.Println("connected:", s.ID())
return nil
})
}
【问题讨论】:
-
这个测试不应该是
github.com/googollee/go-socket.io本身的一部分,而不是用户空间代码吗? -
上面的代码只是一个例子,如果我在处理程序内部有自己的业务逻辑,例如数据库操作,或者返回其他值。
-
创建一个单独的函数,它将
socketio.Conn接口作为参数,并将其传递给server.OnConnect而不是匿名函数。然后你可以模拟socketio.Conn来对你的函数进行单元测试。 -
能否提供一些代码 sn-p 帮助我理解,不胜感激。
-
在下面添加了示例 sn-p。
标签: unit-testing go socket.io