[TestCase(2, 3, 5)]
[TestCase(0, 0, 0)]
[TestCase(-1, 1, 0)]
public void AddTest(int a, int b, int expected)
{
Assert.AreEqual(expected, a + b);
}
// 從外部數據源讀取
[Test, DataSource("MyDataSource")]
public void ExternalDataTest(int x, int y) { ... }
// 傳統風格
Assert.AreEqual("Hello", myString);
// 约束風格(可擴展)
Assert.That(myString, new EqualConstraint("Hello"));
Assert.That(myList, Has.Count.EqualTo(5));
Assert.That(myObject, Is.InstanceOf());
Charlie Poole 官方澄清:
- NUnit 2.4.7:當前穩定生產版本,建議生產環境使用
- NUnit 3.0:規劃中下一代平台(NUnit Extensible Test Platform),功能超集
- NUnit 2.5:非原計劃版本,為滿足社群對新特性需求而發布,仍處 Alpha 階段
| 框架 | 特點 |
|---|---|
| MBUnit | 功能豐富,支援行測試、併行測試 |
| CSUnit | 輕量、簡潔 |
| xUnit.net | 現代設計、無靜態狀態、擴展性強 |
| NBehave | BDD 風格、可讀性強 |
| Gallio | 通用測試運行器,整合上述所有框架 |
NUnit 2.5 Alpha 引入數據驅動、並行測試等現代特性,但仍處早期階段。生產專案建議使用 2.4.7 或評估 xUnit.net。理解 NUnit 版本演進與生態定位,有助於團隊做出合適的測試框架選型決策。