2
我在摸索模拟套接字的接收方法。moq嘲讽缓冲区[]参数
这是我用来让模拟工作的解决方法。
public class Test_MockSocket : Socket
{
public Test_MockSocket() : base (
(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 30000)).AddressFamily,
(SocketType.Stream),
(ProtocolType.Tcp))
{
}
}
,这是测试的当前版本:
[Test]
public void ShouldReadFromSocket()
{
byte[] thingy = null;
var Mock = new Mock<Test_MockSocket>();
Mock.Setup(foo => foo.Receive(It.IsAny<byte[]>())).Returns(1);
Socket MockSocket = (Socket)Mock.Object;
Assert.AreEqual(1, MockSocket.Receive(thingy));
}
我想嘲笑这个接收过程,但是我不只是想这个简单的回应。失败是“System.NotSupportedException:在非虚拟(VB中可重写)成员无效的设置:foo => foo.Receive(It.IsAny())”
为什么我的设置错误,我需要什么更改为返回一个文本字符串作为byte []缓冲区参数。