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

  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: ...
posted @ 2010-03-25 00:26  Gang.Wang  阅读(254)  评论(0编辑  收藏  举报