unit testing for ArgumentNullException by param name

c#, dependency-injection, mstest, unit-testing

Solution

You could explicitly catch the exception in your test and then assert the value of the `ParamName` property:

try
{
    //test action
}
catch(ArgumentException ex)
{
    Assert.AreEqual(expectedParameterName, ex.ParamName);
}

Problem

I have a unit test and am checking for null exceptions of my controller constructor for a few different services. ``` [TestMethod] [ExpectedException(typeof(ArgumentNullException))] ``` In my controller constructor I have: ``` if (routeCategoryServices == null) throw new ArgumentNullException("routeCategoryServices"); if (routeProfileDataService == null) throw new ArgumentNullException("routeProfileDataService"); ``` I have a unit test for each, but how can I distinguish between the two. I can leave the test as is as either of the checks could be throwing null so I want to test the exception by param name. Is this possible?

Original source

Related problems