Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NUnit Unit Test has "ExpectedException" but still failing on exception

I have a unit test that is failing because a System.ArgumentException is being thrown, even though I am expecting it and it's deliberate behaviour - what have I missed?

[Test]
[ExpectedException(typeof(ArgumentException), ExpectedMessage = "Seconds from midnight cannot be more than 86400 in 010100712386401000000012")]
public void TestParsingCustomReferenceWithInValidSecondsFromMidnight()
{
    // I am expecting this method to throw an ArgumentException:
    CustomReference.Parse("010100712386401000000012");
}

I've also tried without the ExpectedMessage being set - no difference.

like image 925
Neil Barnwell Avatar asked Jan 23 '23 20:01

Neil Barnwell


2 Answers

Have you tried the assertion syntax?

Assert.Throws<ArgumentException>(
    () => CustomReference.Parse("010100712386401000000012"),
    "Seconds from midnight cannot be more than 86400 in 010100712386401000000012"
);
like image 138
Damian Powell Avatar answered Jan 28 '23 19:01

Damian Powell


Is the expected message correct? Is that the exact same message that CustomReference.Parse(string) throws? For example, it is not what is being displayed in the NUnit console.

I wouldn't know another reason why this would not work. What version of NUnit are you using?

like image 36
Razzie Avatar answered Jan 28 '23 18:01

Razzie