我想单元测试下面的代码。我一直在使用MSTest,并试图学习Microsoft Moles和RhinoMocks。但我不能让他们都不帮助我。我知道我可以大幅改变代码以使用更易测试的接口,但这需要我编写封装了TcpClient,NetworkStream,StreamWriter和StreamReader的接口和实现。如何对网络连接进行单元测试?
我已经为此编写了集成测试,我猜测有摩尔人精通的人可以在不更改代码的情况下很容易地为此进行单元测试。
using (TcpClient tcpClient = new TcpClient(hostName, port))
using (NetworkStream stream = tcpClient.GetStream())
using (StreamWriter writer = new StreamWriter(stream))
using (StreamReader reader = new StreamReader(stream))
{
writer.AutoFlush = true;
writer.Write(message);
return reader.ReadLine();
}
有些事情只是不值得尝试“单元测试”。如果你嘲笑这个方法使用的部分,你基本上会检查一个属性setter,一个调用`writer`的方法和一个调用`reader`的方法。这里没有太多的行为,测试也不是非常有趣。现在测试使用这个方法的类会很有趣,所以我完全让这个类实现一个接口,并测试调用它的组件。 – 2011-12-16 12:33:34
@ MerlynMorgan-Graham我同意 – 2011-12-16 12:37:17