看了同事的分享,打算在以下几方面改进自己的测试代码。

先了解下坏的测试有些什么毛病:
    测试代码冗长,晦涩难懂。
    测试失败的信息不够明确,需要太多的debug才能定位。
    测试需要人工的干预(比如数据准备,改变条件等)。
    整个测试没有验证点,即使代码抛出了异常,测试还是通过的。
比如


然后他是怎么优化的呢


我打算的改进点:
  • AAA : Arrange  Action  Assert
  • Given  When Then
  • Given用Junit或TestNG的参数化方式
  • 复杂的断言,抽离出短小的方法
  • 复用参数化方法,复用断言方法
  • 绝对不写没有断言点的测试(即使抛出异常,还能test pass)
  • 命名规范
  • 及时维护(hudson)