c# - 检查功能测试的结果
问题描述
我创建了一个与设备通信并向用户提供高级 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 ,反之亦然。
解决方案
当然——只要你完成了一些测试,证明你的套装确实设置了它给出的任何东西(或遵守你想要的规则)。如果您的设置逻辑很简单,则该设置可能没有实际用途,尽管必须在依赖于该位的其余代码之前测试不断增长的复杂性。
但是也有边缘情况。您可能想用一个虚拟的逻辑来模拟您的设置逻辑,并确保它确实被调用了,比如说,恰好一次。这同样适用于获取和设置行为。这些是独立的,不应依赖于现实世界的实施。
完成后,您就可以毫无疑问地信任自己的代码并在功能测试中使用它。
推荐阅读
- ruby-on-rails - rails to_json 返回单个字段
- unity3d - 是否可以在统一应用程序本身内创建标记生成器
- angular - 带有令牌的 Angular 6 Firebase 自定义身份验证
- html - 使用视口单位,更新时网站崩溃?
- c# - SelectNodes 使用特定的类和设置为特定值的属性
- android-studio - (Ctrl + Z = 上一步)下一步呢?
- sql - 在 SQL 中显示 DateDiff 函数的小数点
- javascript - 在属性类型不同的 Javascript 对象中查找错误值?
- java - Java:反序列化和搜索对象时出现Arraylist序列化错误
- javascript - 使用 javascript 只阻止一个事件