编写单元测试有以下好处:数据库
可是,难以阅读和维护的测试代码则会拔苗助长。本文会提供一些编写单元测试的最佳实践以使得你的测试代码易于维护和理解。单元测试
功能测试成本相对较高,由于常常须要打开应用并执行一系列操做以验证结果是否符合预期。测试步骤所涉及领域未必是测试人员所熟知,致使须要其余人协助进行测试。对于细微变化,测试可能需几秒钟,亦或几分钟来测试较大的变动。最后,对于系统中的每处修改都须要进行重复测试。测试
反观单元测试,仅需毫秒级别且无需对系统自身了解过多。单元测试经过与否取决于测试运行器(test runner),而不是某我的。spa
回归缺陷是在对应用程序进行更改时引入的缺陷。测试人员不只要测试他们的新特性,还要测试之前存在的特性,以验证以前实现的特性是否仍然像预期的那样运行。设计
经过单元测试,能够在每次构建以后,即使是只修改了一行代码,从新运行整个测试流程,以确保新代码不会破坏已有功能。文档
有时对于特定的参数,方法的预期输出难以肯定。你或许会问,若是向方法中传入空字符串或者null会发生什么?字符串
当编写具备良好命名的测试用例时,每一个用例能够清晰的说明对于给定的输入会有怎样的输出。此外,测试用例还应能够验证方法是否可以正常工做。test
编写单元测试能够下降代码耦合度,由于高耦合的代码将会使得单元测试变得困难重重。重构