如何为连接设备的代码编写单元测试

时间:2013-08-04 13:41:46

标签: c# unit-testing

我编写了一个连接设备的程序。

例如,我希望测试reset方法为设备发送重置请求(它不是HTTP请求,它可以是套接字)。(设备可以是任何东西)。 我不想测试请求只是想确保方法正常工作。

  

在计算机编程中,单元测试是个人的一种方法   源代码单元,一个或多个计算机程序模块的集合   连同相关的控制数据,使用程序和操作   程序,进行测试,以确定它们是否适合使用。[1]   直观地,人们可以将单元视为最小的可测试部分   应用。在程序编程中,单元可以是整体   模块,但更常见的是单个功能或程序。在   面向对象编程单元通常是整个界面,例如   作为一个班级,但可以是一个单独的方法。

我无法独立测试reset方法(没有设备)。 我可以为reset方法编写单元测试吗? 我如何为这些情况编写单元测试?

2 个答案:

答案 0 :(得分:0)

使用模拟库,例如:http://www.hibernatingrhinos.com/oss/rhino-mocks。然后,在单元测试中,您可以创建一个实现设备接口的模拟,并且可以验证是否调用了特定方法(在本例中为reset)。

答案 1 :(得分:-1)

您需要创建一个设备仿真系统,假设该设备对您很重要,并且您确实需要知道您的代码是否适用它。

“mock”只会创建一个接口,而您的协议需要进行测试。例如,reset方法为设备进行物理和逻辑重置需要非零时间。模拟不会削减它。同样,设备只能在某些状态下接受某些命令;通常必须让状态机支持您的模拟器。

您无需在C#中实现设备模拟器;你只需要与设备模拟器接口。例如,有高度可定制的仿真系统可以实现状态机,并且可以由测试数据文件或脚本驱动。