kota's memex

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");
        }
    }
}