私は以下のコードをユニットテストしたいと思います。私は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();
}
「ユニットテスト」を試してみる価値はありません。このメソッドが使っている部分を嘲笑した場合は、本質的にプロパティセッター、 'writer'へのメソッド呼び出し、' reader'へのメソッド呼び出しをチェックすることになります。ここでの行動はあまりありません。テストするのも面白いことではありません。このメソッドを使用するクラスをテストするのは興味深いので、このクラスはインターフェイスを実装し、それを呼び出すコンポーネントをテストするようにしています。 –
@ MerlynMorgan-Graham私は同意する –