Debugging and Unit Testing in Visual Studio 2017
This is the first video of a two-part course covering all aspects of debugging and testing using Visual Studio 2017. This part focuses on live debugging and unit testing. The second part will focus on integration testing and measuring application performance.
The course is very practical. Most of the time is spent in Visual Studio, performing typical every day tasks. Key concepts are explained when they are first introduced, always accompanied by hands-on examples. By the end of the video, you should be able to debug and test your code in Visual Studio with confidence, even with no prior experience. The only assumption is previous knowledge of C#.
Section 1, Installing Visual Studio, guides you through the process of setting up the working environment. It starts with an overview of different Visual Studio branded products and Visual Studio 2017 editions to help you choose the right one to download. It explains the available options in the new Visual Studio installer and concludes with a look at the dialogs displayed during the first launch.
Section 2, Interactive debugging, introduces the features of the Visual Studio debugger: commands for controlling the program flow, windows for viewing variable values, breakpoints, and the new exceptions dialog. It concludes with a demonstration of debugging multi-threaded applications and standalone processes locally and on remote computers.
Section 3, Unit testing, starts with the structure of a typical unit test and a comparison of different unit testing frameworks. It continues with support for unit tests in Visual Studio 2017 and concludes with guidance on how to organize larger unit test suites and better isolate the code under test.
Section 4, Running unit tests automatically, focuses on tools in Visual Studio 2017 for automated running of unit tests: Test Explorer toggle for running tests after every build and Live Unit Testing feature for running them continuously.
Section 5, White-box testing, uses IntelliTest to explain the concept of white-box testing. It shows how to automatically create tests for an existing function and how to further customize them afterwards.