c++ - 在 C 中输入具有 "boolean"返回类型和 "no parameters"的函数

标签 c++ c unit-testing embedded driver

boolean function(void)
{
   return TRUE;
}

这个函数在单元测试期间可以返回 false 吗?

详细信息:

我正在查看在 Tessy 中完成的复杂设备驱动程序的单元测试用例。默认情况下,tessy 将 unsigned char function 的传递值设置为“irrelevant”。使用这个接口(interface),返回值总是TRUE

现在,之前的一位测试人员通过将 unsigned char function 的接口(interface)设置为“input”并将其设置为 FALSE 来测试该单元,这会导致返回值到 FALSE 而不是 TRUE

根据我的理解,这个测试用例似乎无效,因为这个函数不能接受任何输入,并且总是返回 true。

最佳答案

由于函数不能返回 false,假设它返回 false 的测试用例确实无效,因为永远无法达到该状态;但是,在内部测试该单元的稳健性并防止将来出现错误可能是个好主意。

但是如果在任何 future 的版本中,该函数仍然永远不会返回 false(即它的定义永远不会改变),那么使用努力(资源)来测试单元以应对永远不会发生的事情,就是浪费资源(并且钱)。

如果在某个不可预见的 future ,函数定义确实发生了变化,那么变更管理的过程就是识别受影响的任何部分并重新测试那些,现在包括一个false 返回值。

关于c++ - 在 C 中输入具有 "boolean"返回类型和 "no parameters"的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40406862/

相关文章:

c++ - 使用字符串赋值和复合赋值安全吗?

c - 以下 C 程序的输出是什么

c++ - 如何比较两个迭代器以在 VS2013 上进行单元测试?

java - 如何对以下方法进行单元测试

c++ - 如何通过 C++ 通过 JNI 传递扩展 ASCII 字符

c++ - 在 Windows 中获取登录用户数

在 C/C++ 中创建库 - ld 找不到我的库

c - 如何在结构体中初始化 char**

unit-testing - 如何在 Swift 中模拟单个函数?

c++ - 包装非类型模板常量以避免混合相同类型的参数