NUnit学习笔记4--单元测试和项目结合的几种方法
NUnit学习笔记4--单元测试和项目结合的几种方法
单元测试要运用到实际项目中去,必须把单元测试代码和项目通过某种途径联系在一起。
比如,在我的学习笔记1中,有一个工程:WindowsApplication12,这个工程中有Class1这个类,该类就是项目的实际代码,随后我在该工程中添加一个Class1Test的测试类,用来测试Class1中的一些方法。 这个过程,就是一种结合方法:对每个需要测试的类,都在该类的工程下建立一个测试类。 在我的实际经验中,接触到如下几种方法,以下进行举例说明,每种方法都有其特定使用环境,优缺点,供大家参考: 1,单元测试代码,直接写在需要被测试的类中。 solution结构如下: 代码如下:
Imports
NUnit.Framework
< TestFixture() > _ Public ClassClass1 ClassClass1 '''----------------------------------------------------------------------------- '''<summary> '''查找最大值 '''</summary> '''<paramname="list">传入整数数组</param> '''<returns>返回数组中的最大值</returns> '''<remarks> '''</remarks> '''<history> '''[TonyGong]5/25/2006Created '''</history> '''----------------------------------------------------------------------------- FunctionFindMax()FunctionFindMax(ByVallistAsInt32())AsInt32 DimiAsInt32 DimmaxAsInt32=Int32.MinValue Fori=0Tolist.Length-1 Iflist(i)>maxThen max=list(i) EndIf Next Returnmax EndFunction '''----------------------------------------------------------------------------- '''<summary> '''测试Class1类的FindMax方法 '''</summary> '''<remarks> '''</remarks> '''<history> '''[TonyGong]5/25/2006Created '''</history> '''----------------------------------------------------------------------------- <Test()>_ PublicSubFindMaxTest()SubFindMaxTest() ' Dimlist1()AsInt32={1,3,10,4} Dimlist2()AsInt32={1,4,10} Dimlist3()AsInt32={10,1,4} Dimlist4()AsInt32={-2,-1,-3} DimmyAsNewClass1 '测试数组list1中的最大整数是不是10。 Assert.AreEqual(10,my.FindMax(list1)) '测试边界值 Assert.AreEqual(10,my.FindMax(list2)) Assert.AreEqual(10,my.FindMax(list3)) '测试负数数组,数组中最大值应该是-1 Assert.AreEqual(-1,my.FindMax(list4)) EndSub EndClass
Public
ClassClass1
ClassClass1
'''----------------------------------------------------------------------------- '''<summary> '''查找最大值 '''</summary> '''<paramname="list">传入整数数组</param> '''<returns>返回数组中的最大值</returns> '''<remarks> '''</remarks> '''<history> '''[TonyGong]5/25/2006Created '''</history> '''----------------------------------------------------------------------------- FunctionFindMax()FunctionFindMax(ByVallistAsInt32())AsInt32 DimiAsInt32 DimmaxAsInt32=Int32.MinValue Fori=0Tolist.Length-1 Iflist(i)>maxThen max=list(i) EndIf Next Returnmax EndFunction EndClass
Imports
NUnit.Framework
Imports ClassLibrary3 < TestFixture() > _ Public ClassClass1Test ClassClass1Test PublicSubNew()SubNew() EndSub '''----------------------------------------------------------------------------- '''<summary> '''测试Class1类的FindMax方法 '''</summary> '''<remarks> '''</remarks> '''<history> '''[TonyGong]5/25/2006Created '''</history> '''----------------------------------------------------------------------------- <Test()>_ PublicSubFindMaxTest()SubFindMaxTest() ' Dimlist1()AsInt32={1,my.FindMax(list4)) EndSub EndClass 由于是以工程为单位,所以部署起来很容易,只要把这几个工程去掉就可以了,将来再要用,也只要加上就可以了。不过操作相对来说比较繁琐,没有前2种方法便捷。
Imports
NUnit.Framework
< TestFixture() > _ Public ClassClass1Test ClassClass1Test PublicSubNew()SubNew() EndSub '''----------------------------------------------------------------------------- '''<summary> '''测试Class1类的FindMax方法 '''</summary> '''<remarks> '''</remarks> '''<history> '''[TonyGong]5/25/2006Created '''</history> '''----------------------------------------------------------------------------- <Test()>_ PublicSubFindMaxTest()SubFindMaxTest() ' Dimlist1()AsInt32={1,my.FindMax(list4)) EndSub EndClass 这种方法的最大优点是不需要修改你的项目,不过缺点也很多,不够灵活,操作复杂等。 我个人比较多用2,3,在很小的模块中有时会用1,不过比起用1来,可能使用TestDriven.NET更加方便些,这个我打算后面单独写篇文章。 以上是我平时的一些经验,可能有很大不足,希望指正。
posted on 2006-05-25 16:04
Tony.Gong 阅读(756)
评论(5)
编辑
收藏
引用
网摘 所属分类:
单元测试
评论:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |