VS2005 是如何做 單元測試 的(此處的單元測試目的是為了發現程序邏輯上的錯誤,測試的最小單元是: XX 方法)。 1 、編寫一個加法程序,其中編寫一個加法方法,然后調用該方法。 程序代碼如下: using" name="description" />

使用VS2005進行單元測試

發表于:2007-12-24來源:作者:點擊數: 標簽:單元測試vs2005
下面通過一個簡單的例子來講解 MI LY: 'Courier New'">VS2005 是如何做 單元測試 的(此處的單元測試目的是為了發現程序邏輯上的錯誤,測試的最小單元是: XX 方法)。 1 、編寫一個加法程序,其中編寫一個加法方法,然后調用該方法。 程序代碼如下: using

下面通過一個簡單的例子來講解MILY: 'Courier New'">VS2005是如何做單元測試的(此處的單元測試目的是為了發現程序邏輯上的錯誤,測試的最小單元是:XX方法)。
1
、編寫一個加法程序,其中編寫一個加法方法,然后調用該方法。

程序代碼如下:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace WindowsApplication1

{

   public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        public int Add(int a,int b)    //構建ADD方法

        {

            return a +b ;

        }

        private void button1_Click(object sender, EventArgs e)

        {

            int temp = 0;

            temp=Add(Convert.ToInt32(textBox1.Text), Convert.ToInt32(textBox2.Text));//調用ADD方法

            textBox3.Text = temp.ToString();

        }

        private void label2_Click(object sender, EventArgs e)

        {

        }

        private void label3_Click(object sender, EventArgs e)

        {

        }

    }

}程序運行截圖如下:


2、測試ADD方法。

   VS2005,將光標移動到ADD方法處,單擊鼠標右鍵并點擊“創建單元測試“,如下圖(在此界面中可以選擇單元測試的代碼為哪種語言:C#,VB,C++


創建完單元測試代碼后,可以看到此時
VS2005自動為ADD方法創建的單元測試代碼原碼如下

///<summary>

        ///Add (int, int) 的測試

        ///</summary>

        [TestMethod()]

        public void AddTest()

        {

            Form1 target = new Form1();

            int a = 0; // TODO: 初始化為適當的值

            int b = 0; // TODO: 初始化為適當的值

            int expected = 0;

            int actual;

            actual = target.Add(a, b);

            Assert.AreEqual(expected, actual, "WindowsApplication1.Form1.Add 未返回所需的值。");

            Assert.Inconclusive("驗證此測試方法的正確性。");

        }

}

在上面的代碼中,根據系統提示,應對參數a,b進行初始化,假設a=30,b=15;將原始代碼稍做修改為下:

 ///<summary>

        ///Add (int, int) 的測試

        ///</summary>

        [TestMethod()]

        public void AddTest()

        {

            Form1 target = new Form1();

            int a = 30; // TODO: 初始化為適當的值

            int b = 15; // TODO: 初始化為適當的值

            int expected = 45; //預期結果應該為:30+15=45

            int actual;

            actual = target.Add(a, b);

            Assert.AreEqual(expected, actual);//預期結果與真實結果進行對比,如果相同則測試通過,否則失敗

           // Assert.Inconclusive("驗證此測試方法的正確性。");注釋該行

        }

}

此時運行該測試代碼。(可以分別從測試管理器,和工具條上運行)


    通過運行該段代碼可以看到運行結果為:通過。


    此時如果將ADD方法中的a+b改為a-b;然后重新運行一遍更改后的代碼和該段測試代碼,此時的測試結果為:失?。ú榭村e誤信息可以看到預期為45,而實際為15)。


    如果想要查看詳細信息,雙擊測試結果,將會得到詳細信息
    

結論:

  通過VS2005的單元測試,程序員只需要在單元測試代碼中將參數和預期結果實例化,然后運行就可以看到自己編寫的代碼在邏輯上有沒有問題!同樣,如果想讓單元測試發現更多的問題,則必須對測試用例進行詳細的設計,比如設計一個如下簡單的測試用例:

測試參數a

測試參數b

預期結果

實際結果

-10

11

1

-32768

32767

-1

32767

1

32768

-32769

2

32767

.

通過以上用例可以發現當:

1、 輸入的參數本身超出范圍時,系統出錯。

2、 輸入的參數在范圍內,但通過加法運算后,輸出結果的參數不在范圍內,系統出錯。

3、 輸入的參數在范圍內,由于邏輯運算錯誤,輸出的結果不是預期值,系統出錯。

..

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97