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()
單元測試中,幾個變數的簡單介紹:
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()
如示例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()」雙擊,便可檢視**覆蓋率。
在「**覆蓋率結果」視窗中,我們還可以檢視單元測試中**覆蓋的塊數,以及**覆蓋的百分比資訊。
如何使用VSTS寫單元測試
microsoft的開發平台vsts visual studio team system 整合了單元測試框架 team test 即 vsts單元測試。它支援 1.生成測試 框架 2.在ide中執行測試 3.支援從資料庫中載入資料的測試 4.測試執行完成後,進行 分析覆蓋。使用vsts寫單元測試的步...
我該如何寫單元測試?
在我的團隊中,單元測試是較難推行的敏捷實踐之一,我思考後覺得有以下原因 1 主觀上覺得會加大工作量,影響進度 2 從未接觸junit等單元測試框架,害怕接觸新事物 3 團隊形式上要求 形式上開展,但是未能結合培訓 code review等方式持續推行 其實單元測試是個相當簡單的技術,當然,要做的完美...
用googletest寫單元測試
reference 對於稍微複雜些的測試用例,例如需要共享資料 class chashtabletest public testing test virtual void setup virtual void teardown chashtable ht string key1 string key...