IConfiguration vs IOptions NET
Synchronous and Asynchronous in .NET Core
Model Binding and Validation in ASP.NET Core
ControllerBase vs Controller in ASP.NET Core
ConfigureServices and Configure methods
IHostedService interface in .NET Core
ASP.NET Core request processing
| EF-core-Migrations | Thundering-Herd-Problem | |
Unit Testing in .NET Core |
Definition: Unit testing is the practice of testing individual units or components of an application in isolation. In .NET, popular frameworks include xUnit and NUnit. xUnit and NUnit are two popular frameworks in the .NET ecosystem for writing and running unit tests.
Framework: xUnit is the default testing framework in Visual Studio for .NET Core, while NUnit is a widely used alternative.
Example Class: A simple Calculator class.
namespace MyMathLibrary;
public class Calculator
{
public int Add(int a, int b)
{
return a + b;
}
public int Subtract(int a, int b)
{
return a - b;
}
}
Command Line: dotnet new xunit -o MyMathLibrary.Tests
Visual Studio: Add a new project and choose "xUnit Test Project".
Command Line: dotnet add MyMathLibrary.Tests/MyMathLibrary.Tests.csproj reference MyMathLibrary/MyMathLibrary.csproj
Visual Studio: Right-click Dependencies > Add Project Reference.
Test Class: Create CalculatorTests.cs.
using Xunit;
using MyMathLibrary;
namespace MyMathLibrary.Tests;
public class CalculatorTests
{
[Fact]
public void Add_GivenTwoNumbers_ReturnsCorrectSum()
{
var calculator = new Calculator();
int a = 5;
int b = 3;
int expectedResult = 8;
int actualResult = calculator.Add(a, b);
Assert.Equal(expectedResult, actualResult);
}
[Theory]
[InlineData(10, 5, 5)]
[InlineData(0, 0, 0)]
[InlineData(-5, -2, -3)]
public void Subtract_GivenTwoNumbers_ReturnsCorrectDifference(int a, int b, int expectedResult)
{
var calculator = new Calculator();
int actualResult = calculator.Subtract(a, b);
Assert.Equal(expectedResult, actualResult);
}
}
using NUnit.Framework;
using MyMathLibrary;
namespace MyMathLibrary.Tests;
[TestFixture]
public class CalculatorTests
{
private Calculator _calculator;
[SetUp]
public void Setup()
{
_calculator = new Calculator();
}
[Test]
public void Add_GivenTwoNumbers_ReturnsCorrectSum()
{
int actualResult = _calculator.Add(5, 3);
Assert.AreEqual(8, actualResult);
}
[TestCase(10, 5, 5)]
[TestCase(0, 0, 0)]
[TestCase(-5, -2, -3)]
public void Subtract_GivenTwoNumbers_ReturnsCorrectDifference(int a, int b, int expectedResult)
{
int actualResult = _calculator.Subtract(a, b);
Assert.AreEqual(expectedResult, actualResult);
}
}
Command Line: dotnet test
Visual Studio: Use Test Explorer to run tests.
| EF-core-Migrations | Thundering-Herd-Problem | |