【C#】xUnitを使用した単体テスト
環境
.NET コマンド ライン ツール (2.1.2) Product Information: Version: 2.1.2 Runtime Environment: OS Name: Mac OS X OS Version: 10.12 OS Platform: Darwin RID: osx.10.12-x64 Microsoft .NET Core Shared Framework Host Version : 2.0.3
ファイル構成
|--PrimeService | |--PrimeService.cs | |--PrimeService.csproj |--PrimeService.Tests | |--PrimeService.Tests.csproj | |--PrimeService_IsPrimeShould.cs |--TDD.sln
PrimeService_IsPrimeShould.cs
using Xunit; using Prime.Services; namespace Prime.UnitTests.Services { public class PrimeService_IsPrimeShould { private readonly PrimeService _primeService; public PrimeService_IsPrimeShould() { _primeService = new PrimeService(); } [Fact] public void ReturnFalseGivenValueOf1() { var result = _primeService.IsPrime(1); Assert.False(result, "1 should not be prime"); } } }
PrimeService.cs
using System; namespace Prime.Services { public class PrimeService { public bool IsPrime(int candidate) { if (candidate == 1) { return false; } throw new NotImplementedException("Please create a test first"); } } }
出力
$ cd PrimeService.Tests/ $ dotnet test テスト実行 Microsoft (R) Test Execution Command Line Tool Version 15.5.0 Copyright (c) Microsoft Corporation. All rights reserved. テスト実行を開始しています。お待ちください... [xUnit.net 00:00:00.4434140] Discovering: PrimeService.Tests [xUnit.net 00:00:00.5006950] Discovered: PrimeService.Tests [xUnit.net 00:00:00.5068960] Starting: PrimeService.Tests [xUnit.net 00:00:00.6747760] Finished: PrimeService.Tests テストの合計数: 1。成功: 1。失敗:0。スキップ: 0。 テストの実行に成功しました。 テスト実行時間: 1.5004 秒
参考:
dotnet テストと xUnit を使用した .NET Core での単体テスト C# コード | Microsoft Docs