Integration testing in the real world
As opposed to other courses or learning material that just teaches you the theory without any real world hands on experience, this course will take you from the basics of integration testing in ASP.NET Core and show you how to write reliable, robust and elegant integration tests that are easy to work with and extend. We will use state of the art technology that large tech companies use to test our ASP.NET Core APIs and also our MVC or Blazor UIs.
This course is a follow-up to my Unit Testing course and I can't recommend it enough because Integration Testing is such an important part of your test suite as a software engineer.
Trusted by professionals
"As always you make the concepts so simple for anyone to grasp. The way you showcase the unit testing techniques, by following practical examples of day to day problems that engineers are facing, is truly remarkable. Thanks Nick. Keep rocking and keep coding!"
Orestis Meikopoulos - Microsoft
Curriculum
- The project we will be working with (6:40)
- The 5 core integration testing steps (2:59)
- Project separation (2:39)
- Why xUnit? (1:16)
- Writing your first integration test (4:51)
- Naming in integration tests (2:31)
- Arrange, Act, Assert (1:48)
- xUnit’s test execution model (3:27)
- Test setup (2:04)
- Test cleanup (1:53)
- Parameterizing tests (5:26)
- Ignoring tests (1:18)
- Section recap (0:46)
- What this section is about (0:31)
- Writing fluent assertions (3:19)
- Testing strings (2:58)
- Testing numbers (2:00)
- Testing dates (1:37)
- Testing objects (3:32)
- Testing enumerables (3:32)
- Testing methods that throw Exceptions (2:23)
- Testing for raised events (1:29)
- Testing private methods (members) (1:24)
- Testing internal methods (members) (3:01)
- Section recap (0:26)
- The problem with integration tests (1:14)
- Introducing the WebApplicationFactory (5:06)
- Testing status codes (1:58)
- Testing text responses (1:31)
- Testing JSON responses (1:34)
- Testing response headers (1:00)
- Creating realistic test data (5:39)
- Cleaning up the test data (2:31)
- Sharing a single application for multiple test classes (5:32)
- Section recap (0:37)
- The project we will be writing integration tests for (5:11)
- Creating the WebApplicationFactory (3:46)
- The problem with data store dependencies (1:19)
- Introducing Docker (4:05)
- Taking a look at docker compose files (2:49)
- Creating a test container for our database (8:04)
- The problem with third party API dependencies (1:45)
- Introducing WireMock (3:50)
- Creating a mocked API server with WireMock (5:57)
- Testing: Create a resource (14:39)
- Your turn to practice (1:06)
- Testing: Getting a resource (4:34)
- Testing: Getting all resources (5:05)
- Testing: Updating a resource (3:51)
- Testing: Deleting resource (1:25)
- Testing: API Dependency Is Unavailable (4:36)
- Dealing with requests requiring auth (2:12)
- Dealing with background services (1:36)
- Integration testing Minimal APIs (0:52)
- Dealing with Entity Framework (3:10)
- Section recap (1:06)
- The project we will be writing UI integration tests for (2:15)
- What we need to do to test the UI (1:41)
- Introducing Playwright (4:12)
- How our Docker strategy changes (6:37)
- Bootstraping the test project (7:11)
- Testing: Create a resource (14:33)
- Testing: Get a resource (6:37)
- Your turn to practice (0:48)
- Testing: Getting all the resources (3:07)
- Testing: Update a resource (5:57)
- Testing: Delete a resource (3:46)
- Section recap (0:41)