C#:
Skrive tester
Hvordan:
C#-utviklere bruker primært NUnit- eller xUnit-rammeverkene for å skrive tester på grunn av deres fleksibilitet og omfattende funksjonssett. Her er et grunnleggende eksempel som bruker NUnit for å teste en enkel addisjonsfunksjon:
- Installer NUnit og NUnit3TestAdapter via NuGet Package Manager eller .NET CLI:
dotnet add package NUnit
dotnet add package NUnit3TestAdapter
Opprett et C# klassebibliotekprosjekt hvis du ikke allerede har gjort det.
Skriv en enkel funksjon for å teste. For eksempel, en addisjonsmetode i en klasse med navn
Calculator
:
public class Calculator
{
public int Add(int a, int b)
{
return a + b;
}
}
- Skriv en testklasse ved bruk av NUnit:
using NUnit.Framework;
namespace CalculatorTests
{
[TestFixture]
public class CalculatorTests
{
[Test]
public void Add_AddsTwoIntegers_ReturnsCorrectSum()
{
// Arrange (Forbered)
var calculator = new Calculator();
int expected = 5;
// Act (Utfør)
int actual = calculator.Add(2, 3);
// Assert (Bekreft)
Assert.AreEqual(expected, actual);
}
}
}
- Kjør testen ved bruk av din IDEs testkjører eller .NET CLI:
dotnet test
Eksempel på utdata:
Forutsatt at testen din passerer, bør du se en utdata som ligner på dette:
Test Run Successful.
Total tests: 1
Passed: 1
Total time: 1.2345 Seconds
Bruk av xUnit:
Hvis du foretrekker xUnit, er oppsettet lignende som for NUnit. Her er hvordan du skriver om testeksemplet for Calculator
-klassen ved bruk av xUnit:
- Installer xUnit og xUnit.runner.visualstudio:
dotnet add package xUnit
dotnet add package xUnit.runner.visualstudio
- Skriv en testklasse ved bruk av xUnit:
using Xunit;
namespace CalculatorTests
{
public class CalculatorTests
{
[Fact]
public void Add_AddsTwoIntegers_ReturnsCorrectSum()
{
// Arrange (Forbered)
var calculator = new Calculator();
int expected = 5;
// Act (Utfør)
int actual = calculator.Add(2, 3);
// Assert (Bekreft)
Assert.Equal(expected, actual);
}
}
}
- Kjør testen ved hjelp av .NET CLI eller din IDEs integrerte testkjører.
Både NUnit og xUnit tilbyr kraftige funksjoner for parametrisert testing, oppsett/nedrivningsoperasjoner, og organisering av tester i kategorier, noe som gjør dem til uunnværlige verktøy i C#-programmererens verktøykasse for å sikre kodekvalitet og funksjonalitet.