You often want to unit test non-public methods and classes in .NET, but you don’t want to make them public. The most common solution is to make the methods and classes internal and access them from your unit test project using the InternalsVisibleTo attribute.
There are three different versions of the NUnit Console runner on NuGet. This can be confusing for new users who don’t know which one to pick. The NUnit team has tried to make it easier to pick by changing the titles and descriptions, but Visual Studio shows the package name. Extensions add to the confusion, thus this guide. (more…)
Most .NET developers write code using Visual Studio, so it is convenient to be able to run and debug your NUnit tests from within Visual Studio. There are commercial products like TestDriven.NET, NCrunch and Resharper that can run your tests, but the NUnit Visual Studio Adapter is free and works in all current editions of Visual Studio. (more…)
In the last post, we setup an NUnit test project and ran it in Visual Studio. In this post we are going to expand on that code to add more unit tests using the NUnit TestCase attribute.
Looking back at the last post, we are testing a method that converts an enum value to a friendly string by splitting the enum name at capitals. In that post, we only tested with one enum value. In this post, we will test with multiple enum values to ensure that the method handles every type of input. We will then remove code duplication by using the [TestCase] attribute to run one test many times with different data. (more…)
You have a new project and you want to add unit tests, where do you start? This tutorial walks you through adding an NUnit test project, writing your first tests and running them in Visual Studio.
This walk-through assumes you already have a project that you want to test. I am starting here with a project that contains a simple class that contains an extension method that converts an enum value to a friendly string by splitting the enum name at capitals. For example, System.Windows.Forms.Keys.BrowserBack would become “Browser Back”. (more…)