[测试模式]测试结果的验证

  1. 状态验证
    1. 使用观察点来获取每种状态,使用断言将它于预期的结果进行比较,就可以验证SUT的状态。
  2. 行为验证
    1. 使用一些手段来获取SUT和它所依赖的组件之间的行为调用,就可以查检SUT的行为过程。
  3. 自定义断言
   1: void assertObj(Obj a, Obj b)
   2: {
   3:     ASSERT_EQ(a.fun(), b.fun());
   4:     ASSERT_EQ(a.value, b.value);
   5:     ...
   6: }

通过这种自定义的断言可以减少很多代码的Copy/Past。

  1. 参数化测试用例和数据驱动,也可以减少代码量。
  2. 在验证SUT时应该避免条件测试逻辑
    1. 减少使用if,如下:
         1: List lineItems = obj.GetLineItems();
         2: if(lineItems.size() == 0)
         3: {
         4:     if(....)
         5:     {
         6:         ...
         7:     }
         8: }

      为什么不写成这样呢?

      1.    1: List lineItems = obj.GetLineItems();
           2: ASSERT_EQ(lineItems.size, n); // n表示你想预期的那个值
           3: ...
 


作者:GangWang
出处:http://www.cnblogs.com/GnagWang/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 
原文地址:https://www.cnblogs.com/GnagWang/p/1694292.html