单元测试的边界

这里说的边界不是说测试中常常看到的边界值,而是说明哪些事情应该是一个单元测试应该做的,哪些是单元测试不应该做的。
如果“单元测试”里面出现了以下的情况,那么它就不是一个单元测试应该做的

  • 需要跟数据库打交道
  • 访问了网络
  • 跟文件系统有交互
  • 它不能像你其他的单元测试那样运行
  • 你必须要经过一些特殊的配置才能使它运行起来

但是不是说如果测试代码里面包含以上行为就不是一个好的测试;相反,这些行为对于测试来说都是非常有意义的。但是,我们需要把这些测试和“真正的”单元测试区分开来,那些真正的单元测试可以“独立”地运行,而不会依赖于其他外部的组件。这样的单元测试才是真正的对被测软件的测试,而不是对数据库是否连同并且运行正常,或者是网络环境是否良好的检测。这就是所谓的“正交性”。

这样做的好处是,单元测试不需要访问数据库,这样测试运行的速度会更加快;使得单元测试更加健壮,因为它与其他系统之间的耦合度降低了!