首页 > 解决方案 > 检查功能测试的结果

问题描述

我创建了一个与设备通信并向用户提供高级 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 ,反之亦然。

标签: c#unit-testingautomated-tests

解决方案


当然——只要你完成了一些测试,证明你的套装确实设置了它给出的任何东西(或遵守你想要的规则)。如果您的设置逻辑很简单,则该设置可能没有实际用途,尽管必须在依赖于该位的其余代码之前测试不断增长的复杂性。

但是也有边缘情况。您可能想用一个虚拟的逻辑来模拟您的设置逻辑,并确保它确实被调用了,比如说,恰好一次。这同样适用于获取和设置行为。这些是独立的,不应依赖于现实世界的实施。

完成后,您就可以毫无疑问地信任自己的代码并在功能测试中使用它。


推荐阅读