【发布时间】:2014-07-10 04:36:48
【问题描述】:
我有一个班级客户。 方法如下,
public class Client
{
public Client(string portNum);
public void Init();
public void SendMsg(byte[] msg);
public byte[] Receive();
}
我正在使用课程进行交流。 Client 是 3rd 方库中的类,所以我无法编辑 Client 类。
我需要为 Client 编写一个 Mock 类来为我的类进行单元测试。 我正在使用 Visual Studio 单元测试。 .Net 4.5。 对于 Mock,我使用的是 Moq.dll。 我尝试如下,
[TestMethod]
public void TestSend()
{
var mockClient = new Mock<Client>();
mockClient.Setup(x => x.SendMsg(It.IsAny<byte[]>())).Callback<byte[]>((m) => Send(m));
Assert.IsTrue(isInit);
}
private void Send(byte[] msg)
{
}
如下抛出异常,
“System.NotSupportedException”类型的异常发生在 Moq.dll 但未在用户代码中处理
附加信息:非虚拟设备上的无效设置(可在 VB) 成员:x => x.SendMsg(It.IsAny())
谁能告诉我错误,我已经做到了。以及如何纠正它。 提前致谢。
【问题讨论】:
-
我正在使用 dll。 Client 是 dll 中的一个类。
标签: c# unit-testing mocking