我创建了一个库,它与设备通信,并向用户提供高级API。
现在我正在尝试创建功能测试--与真正的设备进行通信的测试。
问题:使用自己的函数检查结果可以吗?例如,有GetChannelState()和SetChannelState()方法。我可以用“Set”方法检查“Get”方法,反之亦然?请描述您在类似情况下使用的方法。
示例:有示波器。为了打开它的第二个通道,库发送给示波器字符串"SELECT:CH2 ON"。为了检查通道是否打开,它发送"SELECT?",然后解析响应。响应将类似于下面的"SELECT:CH1 1;CH2 1;CH3 0;CH4 0"。
要设置一个值,就需要SetChannelState(int channelNumber) API,并获得一个值,即GetChannelState(int channelNumber) API。
所以问题是我是否可以使用SetChannelState测试GetChannelState,反之亦然。
发布于 2019-02-26 13:48:35
当然--只要你完成了几个测试,就能证明你的集合确实设置了它所给出的任何东西(或者遵守了你想要的规则)。如果您的设置逻辑很简单,则可能无法实际使用该逻辑,尽管在代码的其余部分依赖于这一点之前,必须对日益增长的复杂性进行测试。
然而,也有边缘的情况。您可能想用一个虚拟逻辑来模拟您的集合逻辑,并且确保它确实被调用了,比如说,精确地调用一次。这同样适用于get和set行为。这些都是独立的,不应该依赖于现实世界的实现。
完成后,您可以完全信任自己的代码,并在功能测试中毫不怀疑地使用它。
https://stackoverflow.com/questions/54882923
复制相似问题