好吧,我知道我正在做一个像这样的声明,所以我的问题是每个人都说服我,我错了.采取这种情况:
我有方法A,它调用方法B,它们在不同的层中.
所以我单元测试B,结果是null.所以我测试返回null,并且单元测试通过.尼斯.
然后我单元测试A,它期望从B返回一个空字符串.所以我模拟了B层,一个空字符串返回,测试通过.再好一点.(假设我没有意识到A和B的关系,或者可能有两个不同的人在构建这些方法)
我担心的是,在我们测试A和B之前,我们找不到真正的问题,即集成测试.由于集成测试提供了对单元测试区域的覆盖,因此构建所有这些单元测试似乎是浪费精力,这些测试实际上并没有告诉我们任何(或非常)有意义的.
为什么我错了?
Sam*_*ijo 23
这是一篇关于测试分类的文章,其中包含一些参数
一旦我们只是比较单元测试和功能测试,我就不会提到整体测试的好处:
在理想的世界中,当测试失败时,您不需要超过2分钟就能知道要查看的内容(无需调试).进行各种尺寸测试的想法只是实现这一目标的指导原则,而不是花费数小时/天/周调试=).
Otá*_*cio 10
单元测试不是用于测试集成中应测试的内容 - 它们是互补的测试集.单元测试保证给定的代码单元自己执行它的设计,而不是其他任何东西.集成测试可确保所有单元协同工作,以执行总体要求.
单元测试更细粒度,允许您查明错误.如果A或B失败怎么办?如果集成测试失败,您怎么知道哪一个失败了?这只是两种方法 - 想象一下,如果你是集成测试Web应用程序的前端控制器,它会加载一些模型并调用一堆方法.这将是一场噩梦,试图找出究竟出了什么问题.
好的,单元测试不会找到所有问题,这就是为什么我们也有集成测试!
但是,假设您有一个方法必须返回一个介于1到9之间的值,并且为它编写了一个测试,然后发现它返回的值为null或10,那么您就知道在进行集成测试之前代码已被破坏。
| 归档时间: |
|
| 查看次数: |
2558 次 |
| 最近记录: |