mdy2001212

博客园 首页 新随笔 联系 订阅 管理
由于面试的上机题需要找了一些资料。(以下资料转载他人)


测试目标:dll或是exe文件
环境    :VS2005+NUnit2.2.9
下边是简单学习过程(由简到繁)

第一步:在vs2005中新建一个class library工程,add 一个class,定义一个取数组最大值的函数,具体定义如下:

public class Class1
{
    public int FindMax(int[] arr)
    {
        int i;
        int max=arr[0];
        for(i =1; i<arr.Length; i++)
        {
            if(arr[i]>max)
            {
              max =arr[i];
             }
         }
         return max;
     }
}

第二步,就该编写test code了。add 一个新的class,命名为Class1Test。再编写code之前,需要给该工程添加一个NUnit的引用,具体为:右键点击reference->add reference->选择nunit.framework,然后在Class1Test文件中添加一个引用:using NUnit.Framework。当然,添加引用的前提是已经安装了NUnit了。下面我们就可以开始code test了。[在这里我觉得在实际的应用中(主要是测试Dll中),还是应该添加一个测试专用的新工程]

    [TestFixture]
    public class Class1Test
    {
        [Test]
        public void FindMaxTest()
        {
            int[] arr1 ={ 1, 3, 10, 4 };
            int[] arr2 ={ 3, 10, 4, 1 };
            int[] arr3 ={ 1, 10, 4, 3 };
            int[] arr4 ={ -1, -3, -5 };       

            Class1 myclass =new Class1();
            Assert.AreEqual(10, myclass.FindMax(arr1));
            Assert.AreEqual(10, myclass.FindMax(arr2));
            Assert.AreEqual(10, myclass.FindMax(arr3));
            Assert.AreEqual(-1, myclass.FindMax(arr4));
        }

    }

    先来解析一下这个类吧:[TestFixture]是NUnit的一个重要的属性,可以说是NUnit的一个标记吧,它向编译工具“宣布”:我要测试啦。[Test]一般用在一个函数之前,而且这个函数必须是public类型,而且无返回值,即void。

     好了,我们的类与测试类都已经写完了(也可以把测试函数与源代码写在一个文件中,但我相信没有几个人会喜欢那样的方式的)。编译好之后,可以得到一个dll文件。

      打开NUnit,点击file->open,选择刚刚编译的dll文件,这样就把文件加载到NUnit了,在它的界面的左边,我们可以看到刚才编写的测试函数FindMaxTest,选择工程项目,或是文件,或是测试函数,然后点击界面右边的Run,如果一路绿灯,OK,我们的测试通过拉!  



posted on 2007-06-16 09:57  尘埃落定  阅读(271)  评论(0编辑  收藏  举报