单元测试SocketAsyncEventArgs

时间:2012-06-01 13:44:14

标签: c# .net visual-studio-2010 unit-testing

我正在尝试设置一个带有SocketAsyncEventArgs的方法的单元测试,即Sockets类中的一个IOCP函数。

为了将其中一个类推入我的函数中,我需要更改SAEA的.BytesTransferred属性。怎么做到这一点?我试图使用PrivateObject.SetFieldOrProperty,但它告诉我它无法找到该属性:

pargs.SetFieldOrProperty("BytesTransferred", expected); 

我收到以下异常: “未找到方法'System.SNet.Sockets.SocketAsyncEventArgs.BytesTransferred'。”

1 个答案:

答案 0 :(得分:3)

此属性没有setter。两种解决方案:

  1. 不要使用SocketAsyncEventArgs进行测试。相反,测试某种模拟对象。
  2. 设置私有字段m_BytesTransferred。使用反射器查看实现细节。
  3. 解决方案#2会让我感到紧张。我会选择#1。