Testing The Exception Thrown In NUnit C#


Testing exceptions in NUnit (a popular unit testing framework for C#) involves verifying that a specific exception is thrown when a certain piece of code is executed. Here’s an example of how you can write NUnit tests to verify that an exception is thrown:

Suppose you have a simple class with a method that throws an exception:

public class Calculator
    public int Divide(int dividend, int divisor)
        if (divisor == 0)
            throw new DivideByZeroException("Cannot divide by zero.");

        return dividend / divisor;

Now, let’s write NUnit tests to test this class and its method:

Step 1: Install NUnit and NUnit3TestAdapter

In your NUnit test project, you need to install the NUnit and NUnit3TestAdapter NuGet packages.

Step 2: Write NUnit Test Cases

Create a test class and write test methods using the TestCase attribute to specify test cases and expected outcomes. Use the Assert.Throws method to verify that a specific exception is thrown.

using NUnit.Framework;
using System;

public class CalculatorTests
    private Calculator _calculator;

    public void Setup()
        _calculator = new Calculator();

    public void Divide_ValidValues_ReturnsQuotient()
        int result = _calculator.Divide(10, 2);
        Assert.AreEqual(5, result);

    public void Divide_DivideByZero_ThrowsDivideByZeroException()
        Assert.Throws<DivideByZeroException>(() => _calculator.Divide(10, 0));

In the Divide_DivideByZero_ThrowsDivideByZeroException test, we use the Assert.Throws method to ensure that calling the Divide the method with a divisor of zero throws a DivideByZeroException.

Step 3: Run NUnit Tests

Run your NUnit tests using a test runner (such as the built-in test runner in Visual Studio, ReSharper, or the dotnet test command-line tool). The test runner will execute your tests and report the results.

The above example demonstrates how to test for expected exceptions using NUnit in C#. You can apply similar techniques to test exceptions in other scenarios as well. Remember that proper exception handling and testing play a critical role in ensuring the reliability and robustness of your code.

Leave a Reply

Your email address will not be published. Required fields are marked *