如何为连接设备的代码编写单元测试
本文关键字:代码 单元测试 接设备 连接 | 更新日期: 2023-09-27 18:26:26
我编写了一个连接设备的程序。
例如,我想要测试为设备发送重置请求(它不是HTTP请求,它可以是套接字)的reset
方法。(设备可以是任何东西)。我不想测试请求,只想确保该方法正确工作。
在计算机程序设计中,单元测试是一种个人源代码单元,一个或多个计算机程序模块的集合以及相关的控制数据、使用程序和操作程序进行测试以确定它们是否适合使用。[1]直观地说,可以将单元视为应用在程序设计中,一个单元可以是一个整体模块,但更常见的是单独的功能或过程。在里面面向对象编程一个单元通常是一个完整的接口,例如作为一个类,但也可以是一个单独的方法。
我无法独立测试reset
方法(没有设备)。我可以为reset
方法编写单元测试吗?如何针对这些情况编写单元测试?
使用模拟库,例如:http://www.hibernatingrhinos.com/oss/rhino-mocks。然后,在单元测试中,您可以创建一个实现设备接口的mock,并可以验证是否调用了特定的方法(在本例中为-reset)。
您需要创建一个设备仿真系统,假设设备对您来说很重要,并且您真的需要知道您的代码是否能与它一起工作。
"mock"只创建一个接口,而您的协议需要测试。例如,reset
方法在物理和逻辑上重置设备所花费的时间为非零。mock不会切断它。类似地,设备只能在特定状态下接受某些命令;有一个支持模拟器的状态机是非常重要的。
您不需要在C#中实现设备模拟器;您只需要连接到设备模拟器即可。例如,有一些高度可定制的模拟系统可以实现状态机,并且可以由测试数据文件或脚本驱动。