C# 单元测试SocketAsyncEventArgs

C# 单元测试SocketAsyncEventArgs,c#,.net,visual-studio-2010,unit-testing,C#,.net,Visual Studio 2010,Unit Testing,我正在尝试设置一个方法的单元测试,该方法采用SocketAsyncEventArgs,即Sockets类中的一个IOCP函数 为了将这些类中的一个放入函数中,我需要更改SAEA的.ByTestTransferred属性。如何做到这一点?我试图使用PrivateObject.SetFieldOrProperty,但它告诉我找不到属性: pargs.SetFieldOrProperty("BytesTransferred", expected); 我得到以下例外情况: 找不到方法“System.

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

为了将这些类中的一个放入函数中,我需要更改SAEA的.ByTestTransferred属性。如何做到这一点?我试图使用PrivateObject.SetFieldOrProperty,但它告诉我找不到属性:

pargs.SetFieldOrProperty("BytesTransferred", expected); 
我得到以下例外情况:
找不到方法“System.Net.Sockets.SocketAsyncEventArgs.ByTestTransferred”。

此属性没有设置程序。两种解决方案:

  • 不要使用SocketAsyncEventArgs进行测试。相反,在某种模拟对象上进行测试
  • 设置私有字段m_ByTestTransferred。使用reflector查看实现细节

  • 解决方案2会让我紧张。我会选择#1。

    有没有一种简单的方法来创建模拟对象?你可以在web上找到大量关于独立单元测试的信息。设置m#U名称似乎对我很有用。稍后我将查看模拟。