unit-testing - 单元测试总是白盒测试吗?
问题描述
我最近看到一些参考文献在一篇文章中指出或提及单元测试始终是白盒测试。
由于黑盒测试只是查看该单元的规范或要求,并确保它满足这些要求,而不关心它是如何做到的,我至少认为单元测试可以是黑盒测试。事实上,如果你的目标是“干净的代码”和“干净的架构”,那么我认为你的目标是在所有测试级别上只创建黑盒测试。
如果在黑盒测试之外还有需要测试的内部结构,那么我认为规范是不完整的。另一种说法是,如果您完成了黑盒测试,并确认您的单元完成了您期望/希望它做的所有事情,并且您没有 100% 的代码覆盖率,并且必须添加白盒测试以获得 100% 的覆盖率,那么我会非常担心额外的代码会导致不符合规范的副作用(可能在边缘或极端情况下),或者只是不必要并增加不必要的复杂性。
我是否误解了白盒与黑盒测试的含义?说根据定义所有单元测试都是白盒测试是否正确?
解决方案
推荐阅读
- javascript - Firebase - AngularJS - 通过子值/键/名称获取父级
- c - 在 sudo 中运行程序时将目录的所有权更改为用户
- c# - 应用程序未正确运行 - 启用了自定义 Web 代理
- jenkins - Jenkins 脚本化管道 - switch 语句中的变量更改未反映在管道步骤中
- php - 本地化帖子 ID 导致 Wordpress 错误
- azure-devops - Azure DevOps 多阶段管道错误:找不到具有指定模式的包:/home/vsts/work/1/s/**/*.zip - 如何修复?
- c++ - 关于复制赋值和删除操作符的问题
- html - 还剩 2 个 div 和 1 个个人
- java - java spring - 处理程序处理失败;嵌套异常是 java.lang.NoClassDefFoundError: org/apache/commons/beanutils/MethodUtils
- java - 如何使用 Objectify 在 Java GAE 中的 void 函数中设置事务?