为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
HUX布斯 2022-09-19 20:53:00
我正在使用go lib:github.com/googollee/go-socket.io 我想知道如何为连接事件编写一个非常简单的测试,例如,如果我想检查没有返回错误。package mainimport (    "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    })}
查看完整描述

1 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

创建一个单独的函数,该函数采用套接字。Conn 接口作为参数,并将其传递给 而不是匿名函数。server.OnConnect


然后你可以模拟套接字。Conn 对函数进行单元测试。


例如,将代码段更改为:


package main


import (

    "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


查看完整回答
反对 回复 2022-09-19
  • 1 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信