【发布时间】:2015-12-01 22:34:57
【问题描述】:
如何为我的Client 结构测试我的NewClient 构造函数?
package busybus
import (
"bufio"
"net"
)
type Client struct {
counter integer
conn net.Conn
bufin *bufio.Reader
bufout *bufio.Writer
messages chan string
state string
}
func NewClient(conn net.Conn, messages chan string) *Client {
return &Client{
counter: 0,
conn: conn,
bufin: bufio.NewReader(conn),
bufout: bufio.NewWriter(conn),
messages: messages,
state: "waiting",
}
}
我尝试了一些这样的测试:
package busybus
import (
"net"
"testing"
)
func TestNewClient(t *testing.T) {
ln, _ := net.Listen("tcp", ":65535")
conn, _ := ln.Accept()
messages := make(chan string)
client := NewClient(conn, messages)
if client.conn != conn {
t.Errorf("NewClient(%q, %q).conn == %q, want %q", conn, messages, client.conn, conn)
}
}
但是由于ln.Accept,这在测试运行期间挂起,无论如何这似乎是一个完全错误的方法......有什么建议我可以测试这个构造函数吗?
【问题讨论】:
标签: unit-testing testing go