Fake & Unit Testing (edit)
There are three Unit Test project types for .NET Core.
- MSTest Test Project (.NET Core)
- xUnit Test Project (.NET Core)
- NUnit Test Project (.NET Core)
This article focus on:
- Visual Studio 2019 Enterprise
- Test Explorer
- Live Unit Testing
- ASP.NET Core 3.1
- EF Core 3.1
- xUnit
- [Fact]
- [Theory]
- [InlineData]
- [ClassData]
- [MemberData]
- [DataAttribute]
- IEnumerable<object[]>
- Moq
- Faker.js
- Integration tests
- Selenium WebDriver
https://github.com/Ermesx/testing-context
https://github.com/bchavez/Bogus
Code template
https://wakeupandcode.com/unit-testing-in-asp-net-core/
public class Calculator { public int Add(int value1, int value2) { return value1 + value2; } }
public class CalculatorTests { [Fact] public void CanAdd() { var calculator = new Calculator(); int value1 = 1; int value2 = 2; var result = calculator.Add(value1, value2); Assert.Equal(3, result); } }
[Theory] [InlineData(1, 2, 3)] [InlineData(-4, -6, -10)] [InlineData(-2, 2, 0)] [InlineData(int.MinValue, -1, int.MaxValue)] public void CanAddTheory(int value1, int value2, int expected) { var calculator = new Calculator(); var result = calculator.Add(value1, value2); Assert.Equal(expected, result); }
public void TestAddNumbers(int x, int y, int expectedResult) { // 1. Arrange var cs = new CalcService(); // 2. Act var result = cs.AddNumbers(x, y); // 3. Assert Assert.Equal(expectedResult, result); }
References:
https://www.simongilbert.net/unit-testing-xunit-csharp-dotnetcore/
https://wakeupandcode.com/unit-testing-in-asp-net-core/
https://www.automatetheplanet.com/visual-studio-project-templates/
https://code-maze.com/unit-testing-aspnetcore-web-api/
https://www.syncfusion.com/blogs/post/how-to-integrate-unit-testing-with-asp-net-core-3-1.aspx
https://www.sqlshack.com/sql-unit-testing-with-ssdt-sql-server-data-tools/