首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >什么时候测试不是单元测试?

什么时候测试不是单元测试?
EN

Stack Overflow用户
提问于 2009-08-10 22:24:04
回答 8查看 10.3K关注 0票数 58

我正在寻找这样的规则:

如果满足以下条件,则测试不是单元测试:

  • it与数据库
  • 通信它不能与
  • 使用的其他测试并行运行,如注册表或文件系统

还有什么?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-08-10 22:27:48

请参阅Michael Feathers' definition

如果满足以下条件,则测试不是单元测试:

  • 它与数据库
  • 通过网络通信
  • 它触及文件系统
  • 它不能与任何其他单元测试同时运行
  • 您必须对您的环境执行特殊操作(如编辑配置文件)才能运行它。
票数 69
EN

Stack Overflow用户

发布于 2009-08-11 14:31:14

如果测试不是单元测试,那么测试就不是单元测试。

说真的,这就是问题所在。

单元测试中“单元”的概念并没有明确的定义,事实上,到目前为止,我找到的最好的定义实际上不是一个定义,因为它是循环的:单元测试中的单元是可以独立测试的最小的东西。

这为您提供了两个检查点:是否隔离测试?它是不是最小的东西呢?

请注意,这两个都是上下文相关的。在一种情况下可能是最小的事情(例如,整个对象)在另一种情况下可能只是单个方法的一小部分。在一种情况下的隔离可能是在另一种情况下(例如,在内存管理的语言中,您永远不会在与垃圾收集器隔离的情况下运行,大多数情况下这是无关紧要的,但有时可能不是)。

票数 35
EN

Stack Overflow用户

发布于 2009-08-10 22:26:02

它没有断言,并且不期望抛出异常。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1257560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档