本節記錄Xunit單元測試的入門知識,以2.1版本作為入門示例。
1、新建一個類庫項目
2、在Nuget中搜索xunit,這里我們只選xUnit.net和xunit.runner.visualstudio包。
其中xUnit是框架,而xunit.runner.visualstudio是vs插件包,讓我們可以方便的在vs中調試。安裝xunit.runner.console也可以在CMD下調試,但是如果只支持這個,相信也沒多少人會用這個框架,畢竟敲命令的方式嚴重拉低了Visual Studio的檔次,所以這里也不做講解。
裝好xunit.runner.visualstudio之后,打開 測試--》窗口--》測試資源管理器就可以在左側窗口隨時運行測試了。
先貼出官網的演示代碼
public class Test1 { [Fact] public void PassingTest() { Assert.Equal(4, Add(2, 2)); } [Fact] public void FailingTest() { Assert.Equal(5, Add(2, 2)); } [Theory] [InlineData(1,2)] public void TheoryPassingTest(int a, int b) { Assert.Equal(3, Add(a, b)); } [Theory] [InlineData(3, 4)] public void TheoryPassingTest2(int a, int b) { Assert.Equal(3, Add(a, b)); } int Add(int x, int y) { return x + y; } [Theory] [InlineData(3)] [InlineData(5)] [InlineData(6)] public void MyFirstTheory(int value) { Assert.True(IsOdd(value)); } bool IsOdd(int value) { return value % 2 == 1; } }
xUnit支持[Fact]和[Theory]兩種屬性。從代碼中也可以看出來,[Fact]就類似於我們寫的實際調用代碼,而[Theory]配合InlineData可以直接在一個方法中測試多組參數。
[Fact]和[Theory]還可以帶兩個參數,一個是修改顯示名稱,一個是跳過測試
[Fact(DisplayName ="通過測試")] public void PassingTest() { Assert.Equal(4, Add(2, 2)); } [Fact(Skip ="跳過測試")] public void FailingTest() { Assert.Equal(5, Add(2, 2)); }
當我們有新增的測試方法時,編譯項目后自動顯示在測試資源管理器中。其他簡單的功能從字面上就可以看出來,就不多做解釋了。