Jason Meridth

I am a continuously learning senior full stack SDE/SRE trying to not let best be the enemy of better.

Buy me a coffeeBuy me a coffee

How to Capture the Exception Message From Assert.Throws in NUnit

23 Mar 2012 » » .net, testing

In the past I’ve used:

[ExpectedException(typeof(CustomException), ExpectedMessage="blah blah blah")] 

to set an exception expectation and assert on the message. With the recent releases of NUnit I’ve finally transitioned all my code to use:

Assert.Throws<CustomException>(() => someType.someMethod(someValue));

or

Assert.Throws<CustomException>(someType.someMethod);

if the method has no parameters.

Only lately have I needed to capture the exception message and validate it. To do this you do the following:

var ex = Assert.Throws<CustomException>(() => someType.someMethod(someValue));

Assert.That(ex.Message, Is.EqualTo("expected message here"));

I am blogging about this because I keep forgetting how to capture the exception message. Hope it helps someone else.