私のSUTはStream
パラメータとして a を必要とし、いくつかの作業を行ってから a を返しますbyte[]
:
public byte[] ProcessRequest(INetworkStream networkStream)
INetworkStream
ラップしStream
ます。
パラメータをモックして、Stream
読み取るバイトを制御できるようにして、これらのバイトでメソッドをテストできるようにします。
stream.Read(buffer, offset, size);
Stream.Read(...)
を返し、パラメータint
を入力しbuffer
ます。
への呼び出しの結果を偽造するMoq
にはどうすればよいですか(したがって、戻り値とパラメーターINetworkStream.Read(...)
の両方の長さを制御します)?byte[]
buffer
ストリームラッパー:
public class FakeNetworkStream : INetworkStream
{
private NetworkStream stream;
public FakeNetworkStream(NetworkStream ns)
{
if (ns == null) throw new ArgumentNullException("ns");
this.stream = ns;
}
public bool DataAvailable
{
get
{
return this.stream.DataAvailable;
}
}
public int Read(byte[] buffer, int offset, int size)
{
return this.stream.Read(buffer, offset, size);
}
public void Write(byte[] buffer, int offset, int size)
{
this.stream.Write(buffer, offset, size);
}
}