C#,NUnit:测试ArgumentException具有正确的ParamName的明确方法

时间:2010-01-11 12:39:27

标签: c# exception properties nunit

为了测试某些东西,例如ArgumentException,我可以这样做:

Assert.Throws<ArgumentException>(() => dog.BarkAt(deafDog));

如何以明确的方式检查ParamName是否正确?还有奖金问题:或许您可能会建议不要对此进行测试?

2 个答案:

答案 0 :(得分:10)

找到一种非常清晰的方法(但如果有人有更好的方法,请告诉我!)

var e = Assert.Throws<ArgumentException>(() => dog.BarkAt(deafDog));
Assert.That(e.ParamName, Is.EqualTo("otherDog"));

Facepalm ...

答案 1 :(得分:4)

如果你想对异常做更多的事情,而不是断言它被抛出,那么Assert.Throws实际上会返回异常,你可以这样做:

var exception = Assert.Throws<ArgumentException>(() => dog.BarkAt(deafDog));
// Assert something else about the exception
相关问题