Mastering Unit And Integration Testing In Clean Architecture

Posted By: ELK1nG

Mastering Unit And Integration Testing In Clean Architecture
Published 9/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 4.29 GB | Duration: 9h 1m

From Zero to Hero with Unit and Integration Tests

What you'll learn

Clean Architecture in .NET: Students will learn how to design and implement clean and modular software architectures using the .NET framework.

This module will teach students how to write integration tests that validate the interactions between different components of a clean architecture solution.

Principles and practices of unit testing in the context of clean architecture, enabling them to verify the correctness of individual components and functions.

Mocking: This topic will teach students how to use mocking framework to create simulated objects, allowing them to isolate and test specific parts of their code

Uses of in-memory databases as a lightweight alternative for testing database interactions, enabling rapid and efficient testing without the need for a real db.

Learn how to populate their database with initial data from JSON files, streamlining the setup of test environments and application bootstrapping.

Students will grasp the SOLID principles of software design, which are essential guidelines for writing maintainable, scalable, and robust code.

Students will learn CQRS architectural pattern, which separates the responsibilities of handling commands and queries in an application.

Students will learn how to use the MediatR library to implement the mediator pattern, simplifying the handling of queries and commands in their application.

Response Wrapper: Learn how to structure and standardize responses from API endpoints, improving consistency and communication in their applications.

Students will become proficient in using the xUnit testing framework to write and execute unit tests in a .NET environment.

Students will learn how to use AutoMapper to simplify the mapping between objects, reducing repetitive code and enhancing codebase maintainability.

Students will learn about EntityFramework Core, a powerful ORM tool for .NET, and teach them how to interact with databases using EF Core.

Students will learn how to generate database migrations

Requirements

Basic Programming Knowledge: Students should have a fundamental understanding of programming concepts and be comfortable with at least one programming language. Knowledge of C# and .NET is beneficial but not mandatory.

Familiarity with Clean Architecture: While not mandatory, prior exposure to clean architecture principles and concepts will be helpful in understanding the course content more effectively.

Description

Are you ready to take your software development skills to the next level? Dive deep into the world of clean architecture testing with our course on "Advanced Clean Architecture Testing Strategies."In this comprehensive course, you'll explore advanced testing techniques and strategies specifically designed for clean architecture applications. Clean architecture is all about creating scalable and maintainable software, and testing is a critical aspect of achieving these goals. Whether you're a seasoned developer looking to enhance your testing skills or a newcomer eager to understand the principles of clean architecture testing, this course is tailored to meet your needs.What you'll learn:Master the fundamentals of clean architecture and its importance in software development.Explore the principles of unit testing and integration testing in the context of clean architecture.Gain hands-on experience with popular testing frameworks and libraries.Discover advanced testing strategies for clean architecture, including mocking.Learn how to write clean and maintainable test code that aligns with clean architecture principles.Explore real-world case studies and examples to solidify your understanding.By the end of this course, you'll have the knowledge and confidence to implement robust testing strategies in clean architecture projects, ensuring your software is not only architecturally sound but also thoroughly tested and reliable. Elevate your development skills and join us on a journey to becoming an expert in clean architecture testing!

Overview

Section 1: Introduction

Lecture 1 Introduction - What you will learn

Section 2: Solution Design - Clean Architecture

Lecture 2 The Solution

Lecture 3 Understanding Nullable Setting

Lecture 4 Projects Dependency References

Lecture 5 Building Relationships and Request Objects

Lecture 6 Category Request Object part 1

Lecture 7 Category Request Object part 2

Lecture 8 Packages - Application

Lecture 9 DI Container

Lecture 10 Response Wrapper

Lecture 11 Create Category Command part 1

Lecture 12 Create Category Command part 2

Lecture 13 Create Category Command habdler

Lecture 14 Create Category Command handler - Mapper part 1

Lecture 15 Create Category Command handler - Mapper part 2

Lecture 16 Explicit mapping

Lecture 17 Create Category Command handler - Mapper part 3

Lecture 18 Delete Category Command

Lecture 19 Get Category Query part 1

Lecture 20 Get Category Query part 2

Lecture 21 Get Category Query part 3

Lecture 22 Create Product Command part 1

Lecture 23 Create Product Command part 2

Lecture 24 Update Product Command

Lecture 25 Delete Product Command

Lecture 26 Get Product By Id Query

Lecture 27 Get Products by Category Id Query part 1

Lecture 28 Get Products by Category Id Query part 2

Lecture 29 Get All Products query

Lecture 30 Recap - Application layer

Lecture 31 ORM

Lecture 32 Category Service Implementation part 1

Lecture 33 Category Service Implementation part 2

Lecture 34 Product Service Implementation

Section 3: Integration Tests

Lecture 35 Integration Test Project

Lecture 36 Injecting Test Dependencies part 1

Lecture 37 Injecting Test Dependencies part 2

Lecture 38 Read from json file

Lecture 39 Get Category By Id test part 1

Lecture 40 Get Category By Id test part 2

Lecture 41 Get Category By Id test part 3

Lecture 42 Get Category By Id test part 4

Lecture 43 Get Category By Id test part 5

Lecture 44 Get Category By Id test part 6

Lecture 45 Get Category By Invalid Id test part 7

Lecture 46 Get All Categories Test

Lecture 47 Get All Categories negative test

Lecture 48 Create Category Test part 1

Lecture 49 Create Category Test part 2

Lecture 50 Create Category Test part 3

Lecture 51 Create Category Test Invalid data part 1

Lecture 52 Create Category Test Invalid data part 2

Lecture 53 Update Category Valid test part 1

Lecture 54 Update Category Valid test part 2

Lecture 55 Update Category Valid-InValid test part 3

Lecture 56 Update Category Valid-InValid test part 4

Lecture 57 Delete Category Valid Test

Lecture 58 Delete Category InValid Test

Lecture 59 Dependency Inversion Principle (DIP)

Lecture 60 Product Service Integration Tests

Lecture 61 Product Service Integration Tests - seed data

Lecture 62 Get Product by Valid ID Tests

Lecture 63 Get Product by InValid ID

Lecture 64 Get Product By Valid Category ID

Lecture 65 Get All products test

Lecture 66 Product Parameter input data

Lecture 67 Create Product Test Valid test

Lecture 68 67 Create Product Valid and Invalid tests

Lecture 69 Update Product valid test data

Lecture 70 Update Product invalid test data

Lecture 71 Delete Product valid-invalid test data

Lecture 72 Recap - Integration Tests

Section 4: Unit Tests

Lecture 73 Intro to Unit Tests

Lecture 74 Mock Category Service part 1

Lecture 75 Mock Category Service part 2

Lecture 76 Mock Category Service part 3

Lecture 77 Mock Category Service part 4

Lecture 78 Mock Category Service part 5

Lecture 79 Mock Category Service part 6

Lecture 80 Create category command handler test part 1

Lecture 81 Create category command handler test part 2

Lecture 82 Update category command handler valid test part 1

Lecture 83 Update category command handler valid test part 2

Lecture 84 Update category command handler valid test part 3

Lecture 85 Update category command handler valid test part 4

Lecture 86 Update category command handler valid test part 5

Lecture 87 Update category command handler valid test part 6

Lecture 88 Delete category command handler valid-invalid test data

Lecture 89 Get Category By Id query handler valid test data

Lecture 90 Get Category By Id query handler valid-invalid test data

Lecture 91 Get All Categories handler valid test - data exists part 1

Lecture 92 Get All Categories handler valid test - data exists part 2

Lecture 93 Get All Categories handler invalid test - data does not exists part 1

Lecture 94 Get All Categories handler invalid test - data does not exists part 2

Lecture 95 Get All Categories handler invalid test - data does not exists part 3

Lecture 96 Get All Categories handler invalid test - data does not exists part 4

Lecture 97 Product Service Mock part 1

Lecture 98 Product Service Mock part 2

Lecture 99 Product Service Mock part 3

Lecture 100 Product Service Mock part 4

Lecture 101 Product Service Mock part 5

Lecture 102 Create product command handler test part 1

Lecture 103 Create product command handler test part 2

Lecture 104 Create product command handler test part 3

Lecture 105 Create product command handler test part 4

Lecture 106 Update product command handler test part 1

Lecture 107 Update product command handler test part 2

Lecture 108 Delete Product command handler tests

Section 5: Rap - Inclosing

Lecture 109 Assignment 01 - Hands-on Coding

Lecture 110 Create Category api endpoint

Lecture 111 Update and Delete Category api endpoints

Lecture 112 Get Category api endpoints

Lecture 113 Register services to DI Container

Lecture 114 Test web api and Add Migration

Lecture 115 Test Web Api - a rap

Students and Aspiring Developers: Students pursuing degrees in computer science or related fields and individuals who aspire to become software developers can also benefit from the course. It provides an opportunity to learn advanced techniques that are highly relevant in the software industry.,Software Developers: Experienced software developers who want to deepen their knowledge and skills in designing, implementing, and testing clean architecture solutions. The course will help them become proficient in advanced testing strategies and best practices within clean architecture projects.,Intermediate to Advanced Programmers: Programmers with a moderate to advanced level of experience in software development, particularly in .NET or related technologies, who want to expand their skill set and improve their ability to create maintainable and testable code.,Tech Leads and Team Leads: Tech leads and team leads responsible for guiding development teams and ensuring code quality will benefit from the knowledge and strategies presented in this course.,Architects and System Designers: Architects and system designers who are responsible for defining the architecture of complex software systems will benefit from this course. It will enable them to incorporate clean architecture principles and advanced testing techniques into their design decisions.