Quality assurance, or testing, is a great way to assess a system, program, or application in a variety of ways. Sometimes, a system requires testing for it to identify erroneous code, while on other occasions, we may need it to assess our system's business compliance. Testing can vary from system to system, and it can be considerably different, depending on the architectural style of the application. Everything depends on how we strategically approach our testing plan. For example, testing a monolith .NET application is different from testing SOA or microservices.
The aim of this chapter is to understand the testing strategies and the different types of testing we can use. We will learn how to implement unit tests, with the help of the Microsoft Unit Testing Framework and with the help of Moq (an open-source...