【发布时间】:2016-08-23 10:28:25
【问题描述】:
我是 Moq 新手,遇到的问题似乎很简单。
我有两个接口 - IClient 和 IClientFactory,它们的方法如下所示:
public interface IClientFactory
{
IClientHandler Get(TcpClient tcpClient);
}
public interface IClient
{
void Run();
}
实现的 Run() 方法当前打开一个流并发送/接收消息。 我正在尝试测试我的 Server 类,尤其是 Listen 方法。 如何模拟这个,以便我的 Server 类接受客户端并接收来自它的消息?
这是我的服务器类中的代码:
public void Listen(CancellationToken cancellation)
{
listener.Start(_maxConnections);
//.... Accept Tcp Client here ....
var handler = _handlerFactory.Get(client); <--- GET CLIENT HERE
//.... Start Communication ....
}
【问题讨论】:
-
接收消息是什么意思?
-
您需要做的是使
TcpClient可测试。所以最好的办法是把它包装在一个支持界面的外观中。 -
最可能的答案是模拟@CallumLinington 所建议的
TcpClient。我认为您还需要从服务器类中提供更多代码。当前的 sn-p 是有限的,使问题过于宽泛。