我有一个要测试的 MyClass 类。
MyClass 有一个调用内部服务器做某事的 void 方法。
func (d *MyClass) SendToServer(args)
do stuff....
server.Send(myMessage)
我想模拟服务器调用 Send,但由于该方法是一个 void 方法,我不能确定我实际上调用它是正确的。
这些是我想到的选项:
- 使用 gomock,mock 服务端,对服务的 send 方法设置期望
- 创建我自己的 MockServer,并用一堆验证“覆盖”方法 Send。就像是:
func (d *MockedServer) Send(message) // 验证消息...
- 创建我自己的 MockServer,但不是在方法中验证期望,而是将消息添加到消息列表中,然后验证列表的内容。
Go 中有什么更好的方法?