The testing tools we'll be looking at within Visual Studio are MSTest, NUnit, Moq, and SpecFlow. Each testing tool creates a console application and the relevant test project. NUnit and MSTest are unit testing frameworks. NUnit is much older than MSTest, and so has a more mature and full-featured API compared to MSTest. I personally prefer NUnit over MSTest.
Moq is different from MSTest and NUnit as it is not a testing framework but a mocking framework. A mocking framework replaces the real classes in your project with mock (fake) implementations that are used for testing purposes. You can use Moq together with MSTest or NUnit. And finally, SpecFlow is a BDD framework. You start by writing a feature in a feature file using business language that the user and the techy alike will understand. Then a step file is generated for that feature. The step file contains the methods as steps necessary to implement that feature.
By the...