为了测试某些东西,例如ArgumentException
,我可以这样做:
Assert.Throws<ArgumentException>(() => dog.BarkAt(deafDog));
如何以明确的方式检查ParamName
是否正确?还有奖金问题:或许您可能会建议不要对此进行测试?
答案 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