【发布时间】:2011-11-17 03:20:58
【问题描述】:
我正在尝试模拟套接字的接收方法。
这是我用来让模拟工作的解决方法。
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[] 缓冲区参数返回。
【问题讨论】: