1.测试代码该如何组织:
1.对于小型项目:组织测试代码的最优先也是最简单的方法就是把测试简单地包含在同一项目、同一程序集之中,紧挨着产品代码。这样的好处是可以访问internal和protected internal成员变量和函数,但是缺点是测试代码到处都是,堆积在产品代码的目录中。
2.使用单独的程序集,在一个独立于产品代码的程序集中创建测试代码。这样做可以清楚的分离测试代码与产品代码,但是缺点测试代码便不可以访问internal和protected internal成员变量和函数了,除非测试代码使用的产品代码的一个子类,并且该子类暴露了必要的成员。
正确的组织测试代码的方式:选中一种看上去适合所处环境的风格,并且在系统中所有的单元测试中都保持这样的风格。
2.测试的礼貌:
同他人一起开发时,在提交代码时要确保连同正确的单元测试一起提交,并且,其他的单元测试仍能够正常的运行。
所有的测试应该在任何时刻都能通过。
3.测试的频率:
何时运行单元测试?
编写新的函数(编译并运行本地的单元测试)。
修正bug(运行测试让bug现形,修正并再次运行单元测试)。
每次成功编译之后(运行本地的单元测试)。
每次对版本控制的提交(运行所有的模块或者系统的单元测试)。
持续不断地(应有一台专门的机器来运行完整的构建和测试,每次都应该从头开始,并且整天自动运行或者周期性的或者每次版本控制的签入时)。
4.测试与遗留代码
对于已经存在的代码,最好是只给最有可能出问题的的代码添加测试。在这样的环境中,单元测试最后总要的作用是避免维护性的更正和修缮导致现存特性产生bug。
测试代码也应该被评审,就像评审产品代码一样。