• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    如何使用VSTS寫單元測試

    發布: 2008-6-10 17:59 | 作者: 網絡轉載 | 來源: 博客園 | 查看: 96次 | 進入軟件測試論壇討論

    領測軟件測試網 Microsoft的開發平臺VSTS(Visual Studio Team System) 集成了單元測試框架(Team Test),即:VSTS單元測試。

    它支持:
    1. 生成測試代碼框架;
    2. 在IDE中運行測試;
    3. 支持從數據庫中加載數據的測試;
    4. 測試運行完成后,進行代碼分析覆蓋。

    使用VSTS寫單元測試的步驟如下:
    1. 創建測試;
    2. 編寫測試;
    3. 運行測試;
    4. 代碼覆蓋。

    1. 創建測試

    打開解決方案中的.cs類文件(如:StudentManager),在其中的一個方法(如:AddStudent() )上右擊,選擇“創建單元測試”命令。

    在彈出的“創建單元測試”對話框中的“輸出項目”下拉框中選擇“創建新的Visual C# 測試項目”,單擊“確定”按鈕,并在“新建測試項目”對話框中輸入測試項目的名稱(如:MySchoolTest),單擊“創建”按鈕后,就看見在原有的解決方案中生成了一個新的項目“MySchoolTest”。

    測試項目創建成功后,會同時生成4個與測試相關的文件:

    AuthoringTest.txt 提供創建測試的說明,包括向項目增加其他測試的說明;

    StudentManagerTest.cs 包含AddStudent()的測試,以及測試初始化和測試清除的方法;

    MySchoolPro.vsmdi 測試管理文件;

    localtestrun.testrunconfig 本地測試運行配置文件。


    2. 編寫測試

    創建測試完畢后,VSTS 為我們自動生成的只是一個測試框架,默認代碼中Assert.Inconclusive 表明這是一個未經驗證的單元測試。

    打開生成的測試文件“StudentManagerTest.cs”, 如示例1:

    [TestMethod]
    public void AddStudentTest()
    {
    global::MySchool.BLL.StudentManager target = new
    global::MySchool.BLL.StudentManager();

    // TODO:初始化為適當的值
    global::MySchool.Models.Student student = null;
    string expected = null;
    string actual;
    actual = target.AddStudent(student);

    Assert.AreEqual(expected, actual,
    "MySchool.BLL.StudentManager.AddStudent 未返回所需的值。");
    Assert.Inconclusive("驗證此測試方法的正確性。");
    }

    單元測試中,幾個變量的簡單介紹:

    target 表示測試目標對象,通過這個目標對象可以測試該類中的各個方法;

    expected 表示期望得到的值;

    actual 表示實際得到的值;




    單元測試中,常用的斷言方法介紹:

    Assert.AreEqual() 測試指定的值是否相等,如果相等,則測試通過;

    Assert.Inconclusive() 表示一個未驗證的測試;

    Assert.IsTrue() 測試指定的條件是否為True,如果為True,則測試通過;

    Assert.IsFalse() 測試指定的條件是否為False,如果為False,則測試通過;

    Assert.IsNull() 測試指定的對象是否為空引用,如果為空,則測試通過;

    Assert.IsNotNull() 測試指定的對象是否為非空,如果不為空,則測試通過;




    我們通過對示例1 添加測試所需的初始值,并對斷言進行簡單的修改后,便得到一個正式的單元測試。

    如示例2:

    [TestMethod]
    public void AddStudentTest()
    {
    global::MySchool.BLL.StudentManager target = new
    global::MySchool.BLL.StudentManager();

    // TODO:初始化為適當的值
    global::MySchool.Models.Student student = new
    global::MySchool.Models.Student(); // 修改1
    student.LoginId = "003";
    student.LoginPwd = "test003";
    student.UserStateId = 1;
    student.studentName = "test003";
    student.studentNo = "test003";
    student.Sex = "男";
    student.ClassID = 1;

    string expected = "學員帳戶創建成功!"; //修改2
    string actual;
    actual = target.AddStudent(student);

    Assert.AreEqual(expected, actual,
    "MySchool.BLL.StudentManager.AddStudent 未返回所需的值。");
    // Assert.Inconclusive("驗證此測試方法的正確性。");
    }

    這樣,便得到了一個正式的單元測試。用斷言Assert.AreEqual()比較expected、actual是否相等。
    如果相等,測試通過。

    配置文件中的設置
    由于我們的測試需要和數據庫打交道,并且數據庫的連接字符串是從配置文件中讀取的,所以我們需要在測試項目中添加配置文件(app.config)。

    如示例3:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <configSections>
    </configSections>

    <connectionStrings>
    //數據庫連接字符串設置
    <add name="DataBaseOwner" connectionString="dbo" />
    <add name="MySchoolConnectionString"
    connectionString=" Data Source=.; Initial Catalog=MySchool;
    User ID=sa; Password=123456 "
    providerName="System.Data.SqlClient" />
    </connectionStrings>
    </configuration>

    3. 運行測試

    打開包含有測試項目的解決方案,在 工具欄 就會出現與測試項目相關的 操作按鈕欄。
    我們要運行項目中的測試,只需要運行測試項目。

    測試項目的運行方式有兩種:
    運行,并啟動調試功能;
    運行,但不啟動調試功能;

    1. 當我們運行測試后,在“測試結果”窗口中,將列出項目中所有的測試。

    2. 開始的時候,測試會處于“掛起”的狀態,測試運行的結果是“通過”或者“失敗”。

    3. 如果我們要查看測試結果的額外細節時,選定測試項并雙擊,便打開了詳細信息窗口。


    4. 代碼覆蓋

    代碼覆蓋是單元測試的一個關鍵指標。

    代碼覆蓋:是指單元測試運行時,覆蓋了多少代碼。

    Team Test 包含了一個代碼覆蓋工具,可以詳細解釋被執行代碼的覆蓋率,并突出顯示哪些代碼被執行,哪些代碼沒有被執行。

    注意: VSTS 在生成單元測試框架時,默認沒有啟用“代碼覆蓋”功能。

    啟用此功能的辦法:

    1. 首先打開“本地測試運行配置文件” localtestrun.testrunconfig ,在解決方案中。

    2. 雙擊“localtestrun.testrunconfig”文件,彈出該對話框窗口。

    3. 在其對話框窗口的左側選擇“代碼覆蓋率”,然后在右側的“要檢測的項目”中選擇要檢測的項目。

    4. 單擊“應用”按鈕。


    當我們啟用了代碼覆蓋功能后,再次運行單元測試時:

    在“代碼覆蓋率結果”窗口中,選中“AddStudent()”雙擊,便可查看代碼覆蓋率。

    在“代碼覆蓋率結果”窗口中,我們還可以查看單元測試中代碼覆蓋的塊數,以及代碼覆蓋的百分比信息。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: vsts 單元 VSTS


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>