1      public DataSet GetDetails(int ID)2         {3              // 方法的作用:这个一个获取数据,并包装成一个DataSet的方法,传入的参数是一个bondAppID,那么我们怎么来设计案例和命名方法名呢?5         }


  ① 首先设计你的测试案例

  看到这个方法我会有这几个想法:1,大值 2,小值 3,刚刚好的值 4,随便一个值 5,还有的测试案例会随着你代码中的逻辑而产生!

  下面是我的测试案例以及方法名的命名,测试方法是上面的那个:


/// <summary>
      /// Input valid bond ,but the cheque is presented Status.
      ///</summary>
         [TestMethod()]  //如果你预期有数据返回,那么应该在后面加上“RecordFound”,这样别人看的时候能一目了然了!
         public void GetDetails_CheckPresentedStatus_RecordFound()
         {
            //To Do.
         }
 
         /// <summary>
      ///Cancel Status.
      ///</summary>
         [TestMethod()]
         public void GetDetails_CheckCancelStatus_RecordFound()
         {
            //To Do.
         }
 
         /// <summary>
      /// Input max.
      ///</summary>
         [TestMethod()]
         public void GetDetails_CheckDetailsByMaxBoundaryValue_NoRecordFound()
         {
            //To Do.
         }
 
         /// <summary>
      /// Input min.
       ///</summary>
         [TestMethod()]
         public void GetDetails_CheckDetailsByMinBoundaryValue_NoRecordFound()
         {
            //To DO.
         }
 
         /// <summary>
      /// Any bondID.
      ///</summary>
         [TestMethod()]
         public void GetDetails_CheckDetailsByAnyBondID_NoRecordFound()
         {
            //To Do.
         }
  ② 说一下总的命名规范

    a)如果返回值是“Bool”型的话,应该在后面加上“RetrunTrue”或“ReturnFalse”!

      如:CheckRebateHasNewChange_ExistNewChanges_ReturnTrue

    b)如果返回值是集合或者DataSet之类的类型话,应该在后面加上“RecordFound”或者“NoRecordFound”!

      如:GetPurchaseOrder_ByPurchaseOrderId_RecordFound

    c)如果是测试异常的话,应该在后面加上“ThrowException”!

      如:CreateRebateApplication_ExistSameRebateID_ThrowException

    d)如果是岁数据库进行删除或者更新,插入的操作时,应该在后面写上“DataUpdated”或“NoDataUpdated”!

      如:UpdateClientIncome_UpdateIncome_DataUpdated

  总结:基本的变动部分都是你中间的描述,中间的描述尽量做到简洁明了,应该以动词开头,如:Update,Input,等等!

  总结:好的命名方式可以增强代码的可读性,尤其是类似于单元测试这样的可读性文档,应该更加注意这方面的考虑!

  3、建立自己的公共调用库

  一个好的单元测试应该都有自己的公共调用库,这样能减少很多的冗余代码,使的代码简洁易懂!

  所以建立了公共库的单元测试符合了单元测试特点中的专业性 → 1.维护封装,解耦等等特点!