https://learn.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-dotnet-test
Create a solution with a class to test and an Xunit test:
dotnet new sln -o unit-testing-example
cd unit-testing-example
dotnet new classlib -o PrimeService
mv PrimeService/Class1.cs PrimeService/PrimeService.cs
dotnet sln add ./PrimeService/PrimeService.csproj
dotnet new xunit -o PrimeService.Tests
dotnet add ./PrimeService.Tests/PrimeService.Tests.csproj reference ./PrimeService/PrimeService.csproj
dotnet sln add ./PrimeService.Tests/PrimeService.Tests.csproj
Create a test:
rm PrimeService.Tests/UnitTest1.cs
vim PrimeService.Tests/PrimeService_IsPrimeShould.cs
using Xunit;
using Prime.Services;
namespace Prime.UnitTests.Services
{
public class PrimeService_IsPrimeShould
{
[Fact]
public void IsPrime_InputIs1_ReturnFalse()
{
var primeService = new PrimeService();
bool result = primeService.IsPrime(1);
Assert.False(result, "1 should not be prime");
}
}
}
Run the test
dotnet test
Add more cases
using Xunit;
using Prime.Services;
namespace Prime.UnitTests.Services
{
public class PrimeService_IsPrimeShould
{
[Theory]
[InlineData(-1)]
[InlineData(0)]
[InlineData(1)]
public void IsPrime_ValuesLessThan2_ReturnFalse(int value)
{
var result = _primeService.IsPrime(value);
Assert.False(result, $"{value} should not be prime");
}
}
}