Unit Testing in C# with MSTest


Introduction

Unit testing is a fundamental practice in software development to ensure that individual units or components of your code work as expected. MSTest is a testing framework for C# that makes it easy to write and execute unit tests. In this guide, we'll explore the basics of unit testing in C# using MSTest and provide sample code to get you started.


Prerequisites

Before you begin with unit testing in C# and MSTest, make sure you have the following prerequisites:


  • Visual Studio or Visual Studio Code for C# development.
  • A basic understanding of C# programming and object-oriented concepts.

Creating a Test Project

To start unit testing with MSTest, follow these steps to create a test project in Visual Studio:


  1. Create a new solution or open an existing one.
  2. Right-click on the solution and choose "Add" > "New Project." Select "Test" > "Unit Test Project (.NET Core)." Name your project and click "Create."
  3. In the newly created project, you can start adding test classes and methods.

Sample MSTest Code

Below is a simple example of MSTest code for testing a hypothetical "Calculator" class.


MSTest Code (CalculatorTests.cs):

using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Calculator.Tests
{
[TestClass]
public class CalculatorTests
{
[TestMethod]
public void Add_TwoPositiveNumbers_ReturnsCorrectResult()
{
// Arrange
var calculator = new Calculator();
// Act
var result = calculator.Add(2, 3);
// Assert
Assert.AreEqual(5, result);
}
[TestMethod]
public void Subtract_TwoNumbers_ReturnsCorrectResult()
{
// Arrange
var calculator = new Calculator();
// Act
var result = calculator.Subtract(5, 3);
// Assert
Assert.AreEqual(2, result);
}
}
}

Running MSTest

After writing your test methods, you can run the tests in Visual Studio. To do this, click "Test" > "Run All Tests" from the top menu. MSTest will execute your tests and display the results in the Test Explorer.


Conclusion

Unit testing is an essential practice to ensure the reliability and correctness of your code. MSTest is a powerful and widely used testing framework in the C# ecosystem. This guide introduced you to unit testing in C# with MSTest and provided sample code to create and run tests. As you continue your software development journey, writing comprehensive unit tests will help you build more robust and maintainable applications.