目的

單元測試

建立新專案

選擇ASP.NET Core Web API專案範本,並執行下一步 步驟1

設定新的專案

命名你的專案名稱,並選擇專案要存放的位置。 範例2-1

其他資訊

直接進行下一步 步驟3

建立新的類別庫

進行命名時通常會與要測試的專案同名並加上結尾.Tests,以此範例就會變成xUnitExample.Tests 範例4-1 範例4-2 範例4-3

NuGet加入套件

針對xUnitExample.Tests加入相關套件

  • xunit
  • xunit.runner.visualstudio
  • Microsoft.NET.Test.Sdk
  • coverlet.collector

範例5-1

新增Calculator.cs類別檔

在xUnitExample專案新增Calculator.cs類別檔 範例6-1 新增一個簡單的加法函式

  public static class Calculator {
    public static double Add(int a, int b) {
      return a + b;
    }
  }

範例6-2

針對xUnitExample.Tests類別庫加入參考

引用要測試的專案,才能將測試與實際專案切分開來 範例7-1 範例7-2

新增CalculatorTests.cs類別檔

刪除預設的類別檔(Class1.cs),建立對應的資料夾以及類別檔案,並在結尾加上Tests 範例8-1

編輯CalculatorTests.cs類別檔

測試都會分三個階段

  • Arrange:準備階段,包含初始化相關資料
  • Act:執行測試方法後所取得的結果
  • Assert:驗證Act取得的結果是否符合預期結果
  public class CalculatorTests {
    //告訴編譯器要執行的測試方法
    [Fact]
    public void Add_() {
      //Arrange
      double Expected = 20;
      //Act
      var Actual = Calculator.Add(5, 15);
      //Assert
      Assert.Equal(Expected, Actual);
    }
  }

範例9-1

執行結果

點選測試>執行所有測試

範例10-1 下方視窗就會顯示成功或失敗 範例10-2

後記

單元測試有另外兩種NUnit與mstest,基本上大同小異,並無太大的區別。

參考

xUnit官網 該用什麼Packages

範例檔

GitHub