不管你愛與不愛,單元測試對於乙個軟體的長治久安還是必不可少的一環。在visual studio 2012後,vs中的測試瀏覽器也能與第三方的整合了,用起來還是非常方便的。目前在.net框架下的測試工具主要有nunit、內建的mstest以及xunit這三個工具,本文就簡單的介紹一下如何在vs中使用xunit這個測試框架的後起之秀。
安裝xunit:
xunit的安裝現在不需要外掛程式支援了,直接使用nuget安裝如下兩個庫即可:
編寫測試用例:
乙個簡單的測試用例如下:
public class testclass1
[fact]
public void testfail()
}執行測試用例
在測試瀏覽器中執行runall即可(修改後不用編譯,它會自動編譯)
測試方式說明:
宣告測試用例:
xunit裡面不需要testclass之類attribute來標記測試用例類,只需要滿足如下條件即可:
斷言:assert類用來驗證測試測試函式的輸出結果。
assert.equal(3, math.max(3, 2));
也可以使用一些擴充套件的斷言庫,常用的就是xunit.should庫,它是以擴充套件函式的方式進行驗證,看起來更加舒服。
pm> install-package xunit.should
math.max(3, 2).shouldbe(3);
不過,這個庫和新版本的xunit適配不是很好,我這裡寫了乙個簡單的版本:
static class assertextension構建和析構:', 期望值是 ''";
throw new invalidoperationexception(msg);
}public static void shouldnotbe(this t value, t notexprected)
' ";
throw new invalidoperationexception(msg);
}static string format(object value)
}
xunit裡面並不是通過setup和teardown標記來表明測試用例的構建和析構操作,它每次執行測試用例的時候都會外掛程式測試用例類,執行完成後,如果其實現了idispose介面,則會呼叫dispose函式,更加簡潔明瞭。也就是說:
異常測試
xunit並不是通過attribute來標記異常捕獲的,而是直接使用assert.throws斷言函式來驗證異常。
public class testclass1
void operation()
}更改測試用例名稱:
[fact(displayname = "max函式測試")]
跳過測試用例:
[fact(skip ="重構未完成")]
分組:[trait("group", "category")]
使用Xunit來進行單元測試
不管你愛與不愛,單元測試對於乙個軟體的長治久安還是必不可少的一環。在visual studio 2012後,vs中的測試瀏覽器也能與第三方的整合了,用起來還是非常方便的。目前在.net框架下的測試工具主要有nunit 內建的mstest以及xunit這三個工具,本文就簡單的介紹一下如何在vs中使用x...
使用Xunit進行單元測試
1.新建乙個類庫專案 2.通過nuget引入xunit,shouldly,xunit.runner.visualstudio三個程式包。3.編寫 public class class1 public string reverse string str public class class1tests...
單元測試 Xunit
pm install package xunit 正在還原 e xunit xunittestproject1 hospital.test.csproj 的包.get ok 292毫秒 get ok 97毫秒 正在安裝 system.threading.tasks.extensions 4.3.0。...