nunit 分三篇文章介紹,入門者可閱讀文章,有基礎者直接參考官方文件。初次寫部落格,望大家指點。
導航:單元測試之nunit一
單元測試之nunit二
單元測試之nunit三
本文介紹常用的nunit屬性特性和斷言。
1. test attribute
標記乙個方法為測試方法。
/// /// 簡單標記方法為測試方法
///
[test]
public void add()
/// /// 新增說明內容,等同於descriptionattribute屬性
///
//[test(description = "這是說明內容")]
[test,description("這是說明屬性")]
public void add()
// 標記非同步方法
[test]
public async task addasync()
// 如果測試方法有返回值,要使用expectedresult校驗
[test(expectedresult = 4)]
public int testadd()
// 非同步含返回值的測試方法
[test(expectedresult = 4)]
public async tasktestaddasync()
2. testfixture attribute
標記乙個類為測試類。從2.5版本開始,對於非引數化、非泛型化測試類是可選的。只要類包含test、testcase、testcasesource屬性標記的方法,都會被視為乙個測試類。
testfixture大多數用來構造引數,被標記的類必須有個對應的建構函式。
簡單例子:
/// /// 使用testfixture標記會生成三個測試,是每個測試方法執行三次
///
[testfixture("hello", "hello", "goodbye")]
[testfixture("zip", "zip")]
[testfixture(42, 42, 99)]
public class testfixtureattributetest
public testfixtureattributetest(string eq1, string eq2)
: this(eq1, eq2, null)
public testfixtureattributetest(int eq1, int eq2, int neq)
[test]
public void testequality()
[test]
public void testinequality()
還可以標記型別:
/// /// 標記tlist會以兩種型別來執行。
///
///
[testfixture(typeof(arraylist))]
[testfixture(typeof(list))]
public class ilist_testswhere tlist : ilist, new()
[test]
public void canaddtolist()
}
3. setup and teardown attribute
標記乙個方法在測試前或者測試後執行,以便初始化或者清理一些引數。
public class setupandteardowntest
[test]
public void test()
[teardown]
public void teardown()
}
執行test測試方法,依次輸出:
我在測試前執行
我在測試時執行
我在測試後執行
4. testcase attribute
testcase有兩個作用:
標記為測試方法;
為方法提供測試引數。
public class testcasetest
/// /// testcase 可以包含條件屬性:author、category、description、excludeplatform、expectedresult、explicit、ignore、ignorereason、includeplatform、reason、testname、testof
///
///
///
///
[testcase(12, 3, expectedresult = 4)]
[testcase(12, 2, expectedresult = 6)]
[testcase(12, 4, expectedresult = 3)]
public int dividetest(int n, int d)
}
更多參考官方文件 的pages頁。
1. assert.areequal
[test]
public void areequal_test()
, }};
list> dic2 = new list>
, }
};assert.areequal(dic1, dic2);//successed.泛型也可以比價,會比較內部的值,且只能一一對應。
listlist = new list;
listlist2 = new list;
assert.areequal(list, list2);//failed.
}
2. assert.aresame[test]
public void aresame_test()
2. assert.true
判斷條件是否為真。
bool result = true;
assert.istrue(result);
以前老版本有assert.isnullorempty("");
這樣的斷言,新版本之後就沒有了。那如果要滿足這種判斷怎麼處理呢?
nunit提供了一系列條件組合,配合 assert.that 的使用可以靈活多變。
constraint的使用參考文件。
1. 取代 assert.isnullorempty
assert.that("1", is.null.or.empty);
單元測試之NUnit
綠色 描述執行的測試通過。黃色 執行的某些測試忽略,但沒有失敗。紅色 測試失敗。testfixture 放在類前,標識類為測試類。test 放在測試類的方法前,標識該方法為可測試的方法。1 該方法必須沒有引數。2 該方法為public型別。3 該方法沒有返回值。setup 每個測試方法執行前,執行該...
單元測試之NUnit
綠色 描述執行的測試通過。黃色 執行的某些測試忽略,但沒有失敗。紅色 測試失敗。testfixture 放在類前,標識類為測試類。test 放在測試類的方法前,標識該方法為可測試的方法。1 該方法必須沒有引數。2 該方法為public型別。3 該方法沒有返回值。setup 每個測試方法執行前,執行該...
單元測試 NUnit
本內容摘自 單元測試之道c 版 使用nunit 編寫目的 供日後參考學習,好記心不如爛筆頭。基本語法 1 單元測試 斷言 assert 方法 areequals assert.areequals expected,actual string message 這是使用最多的斷言形式,expected ...