C# 带套接字连接的Xunit测试功能(ModbusTCP/IP)

C# 带套接字连接的Xunit测试功能(ModbusTCP/IP),c#,unit-testing,sockets,xunit,modbus-tcp,C#,Unit Testing,Sockets,Xunit,Modbus Tcp,首先,我想为我的英语不好道歉。这不是我的母语 我已经编写了一个API来与特定的电机控制器通信。 API和电机控制器之间的连接通过ModbusTCP/IP进行。我使用了套接字连接来实现这一点,它发送和接收字节数组 现在我有一些功能问题,我想通过编写单元测试来解决这些问题,因为控制器根据当前状态返回不同的数据,这使得调试变得困难 我想使用Xunit进行测试,因为我在其他一些项目中使用了它。 但是我不知道如何启动使用套接字连接的函数的单元测试。 很难解释我的代码中的逻辑是如何工作的,但是如果你有兴趣帮

首先,我想为我的英语不好道歉。这不是我的母语

我已经编写了一个API来与特定的电机控制器通信。 API和电机控制器之间的连接通过ModbusTCP/IP进行。我使用了套接字连接来实现这一点,它发送和接收字节数组

现在我有一些功能问题,我想通过编写单元测试来解决这些问题,因为控制器根据当前状态返回不同的数据,这使得调试变得困难

我想使用Xunit进行测试,因为我在其他一些项目中使用了它。 但是我不知道如何启动使用套接字连接的函数的单元测试。 很难解释我的代码中的逻辑是如何工作的,但是如果你有兴趣帮助我,如果你看一下它,就很容易理解

您可以在Github上查看我的项目:

例如: 电机控制器有一个状态字。我可以通过以下方式提出请求:

data = new byte[] {0, 0, 0, 0, 0, 13, 0, 43, 13, 0, 0, 0, 96, 65, 0, 0, 0, 0, 2}
_ = s.Send(data, data.Length, 0);
byte[] bytesReceived = new byte[24];
_ = s.Receive(bytesReceived, bytesReceived.Length, 0);
收到的字节如下:[0,0,0,0,0,15,0,43,13,0,0,0,0,96,65,0,0,0,0,0,0,2,33,2]

如果我从电机控制器向控制字写入了与读取状态字相同的内容,我会影响状态字

对于包含此通信逻辑的函数,如何在接收的字节中伪造数据

  • 阅读状态词:期待我的假数据
  • 写控制字
  • 读取状态字:预期不同的假数据
  • 我想开始在这个控制器中测试Init函数,它基本上有这个逻辑。

    谢谢你的帮助