我创建了一个与设备通信并为用户提供高级API的库。
现在,我正在尝试创建功能测试-与真实设备通信的测试。
问题:可以使用自己的功能检查结果吗?例如,有方法GetChannelState()和SetChannelState()。我可以借助“设置”方法检查“获取”方法,反之亦然吗?请描述您在类似情况下使用的方法。
示例:
有示波器。要打开其第二个通道,库将发送到示波器字符串"SELECT:CH2 ON"
。要检查通道是否打开,它发送"SELECT?"
然后解析响应。该响应将类似于以下"SELECT:CH1 1;CH2 1;CH3 0;CH4 0"
。
要设置一个值,请使用SetChannelState(int channelNumber)
API,并要获取一个值,请使用GetChannelState(int channelNumber)
API。
所以问题是我是否可以使用SetChannelState测试GetChannelState,反之亦然。
答案 0 :(得分:1)
当然-只要您完成了几次测试,即可证明您的装置确实设置了所赋予的一切(或遵守您想要的规则)。如果您的设置逻辑很简单,则可能没有实际用途。尽管在此代码其余部分依赖该代码之前,必须测试不断增长的复杂性。
但是有一些极端情况。您可能想用一个虚拟的逻辑来模拟您的设置逻辑,只是确保它确实被调用了(可以说是一次)。获取和设置行为都相同。它们是独立的,不应依赖于现实世界的实现。
完成后,您将毫无疑问地信任自己的代码并将其用于功能测试中。