单元测试中的UNIT是什么?它应该是什么?

时间:2011-02-16 22:05:24

标签: unit-testing automated-tests

单位是一个类还是一个组件(多个类)?

什么应该是单元测试?一个单位应该多少粒度?

5 个答案:

答案 0 :(得分:5)

单位是应用程序中最小的可测试部分,通常是函数。

答案 1 :(得分:5)

该术语(类似于与敏捷相关的许多其他事物)过载(对不同的人意味着不同的事物)。它经历了很多变化,现在是主观的。有些人提出了一个新术语微型测试,以防止混淆。

之前它的意思是功能级白盒测试。根据经验,单位通常是由类暴露的行为(通常作为方法)。 在TDD从业者中,有两个阵营

  • 基于交互的测试将类与其依赖关系隔离开来(假设两者之间存在某种契约)。依赖项通过其单元测试进行测试。单元测试指定单元如何表现w.r.t.给予某些刺激的其他人
  • 基于状态的测试测试一个类及其真正的依赖关系。

我目前的理解是,这是每单位测试的慎重选择;一种风格并不适合所有风格。

答案 2 :(得分:3)

我会这样说:单元测试中的一个单元是一个实体,对于已知输入,预期定义的输出。然而,粒度级别可能会发生很大变化:从功能到类,再到整个程序。

答案 3 :(得分:2)

它可以是一个班级。它可以是多个班级。它可以是整个系统。这是一个逻辑部分,它接受输入并提供输出 - 但是那些是为该组件定义的。

答案 4 :(得分:2)

它也可能更小;单一方法的单元测试。