技术开发 频道

单元测试和项目结合的方法

    4 以上3种方法都需要在项目的solution中增加东西,但如果你的项目不允许你增加任何测试类或工程(虽然感觉很愚蠢,但的确很多公司不允许程序员这么做),或者你根本没有权限增加工程或文件,这3种方法将都不能使用,这时可以用第4种方法。

   比如你想测试ClassLibrary3工程下的Class1类,你可以先build你的项目,生成ClassLibrary3工程的dll文件,然后在你本地建一个测试工程,引用这个dll,就可以不需要修改你的项目了。

   测试solution结构如下(这个solution是在你电脑本地的,与你的项目没有关系):

    测试代码如下:

Imports NUnit.Framework

<TestFixture()> _
Public Class Class1TestClass Class1Test
Public Sub New()Sub New()

End Sub

''' -----------------------------------------------------------------------------
''' <summary>
''' 测试Class1类的FindMax方法
''' </summary>
''' <remarks>
''' </remarks>
''' <history>
''' [TonyGong] 5/25/2006 Created
''' </history>
''' -----------------------------------------------------------------------------
<Test()> _
Public Sub FindMaxTest()Sub FindMaxTest()
'
Dim list1() As Int32 = {1, 3, 10, 4}
Dim list2() As Int32 = {1, 3, 4, 10}
Dim list3() As Int32 = {10, 3, 1, 4}
Dim list4() As Int32 = {-2, -1, -3}

Dim my As New Class1
'测试数组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))

End Sub

End Class
 

    这种方法的最大优点是不需要修改你的项目,不过缺点也很多,不够灵活,操作复杂等。
 

0
相关文章