如何编写 googollee socket.io 处理程序的单元测试

我正在使用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

    })

}


HUX布斯
浏览 104回答 1
1回答

慕桂英546537

创建一个单独的函数,该函数采用套接字。Conn 接口作为参数,并将其传递给 而不是匿名函数。server.OnConnect然后你可以模拟套接字。Conn 对函数进行单元测试。例如,将代码段更改为:package mainimport (    "fmt"    "log"    "net/http"    socketio "github.com/googollee/go-socket.io")func main() {    server := socketio.NewServer(nil)    server.OnConnect("/", handleOnConnect)}func handleOnConnect(s socketio.Conn) error {    s.SetContext("")    fmt.Println("connected:", s.ID())    return nil}现在,您所要做的就是 测试 。因为 是一个接口,所以您可以创建一个模拟来测试这个函数,而不必担心内部因素。handleOnConnectsocketio.Connsocketio您还可以创建一个新界面,该界面是取决于您的用例的子集,以使模拟更容易。socketio.Conn
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go