Using unit testing tools to automate functional tests in C#
Automated functional tests use the same test tools as unit and integration tests. That is, these tests can be embedded in the same xUnit, NUnit, or MSTests projects that we described in Chapter 18, Testing Your Code with Unit Test Cases and TDD. However, in this case, we must add further tools that are able to interact with and inspect the UI.
In the remainder of this chapter, we will focus on web applications since they are the main focus of this book. Accordingly, if we are testing web APIs, we just need HttpClient
instances since they can easily interact with web API endpoints in both XML and JSON.
In the case of ASP.NET Core MVC applications that return HTML pages, the interaction is more complex, since we also need tools for parsing and interacting with the HTML page DOM tree. The AngleSharp
NuGet package is a great solution since it supports state-of-the-art HTML and minimal CSS and has extension points for...