我有一些测试,我正在检查异常中的参数名称。
我如何在 MS TEST 中写这个?
ArgumentNullException exception =
Assert.Throws<ArgumentNullException>(
() => new NHibernateLawbaseCaseDataLoader(
null,
_mockExRepository,
_mockBenRepository));
Assert.AreEqual("lawbaseFixedContactRepository", exception.ParamName);
我一直希望有更简洁的方法,这样我就可以避免在测试中使用 try catch 块。
最佳答案
public static class ExceptionAssert
{
public static T Throws<T>(Action action) where T : Exception
{
try
{
action();
}
catch (T ex)
{
return ex;
}
Assert.Fail("Expected exception of type {0}.", typeof(T));
return null;
}
}
您可以使用上面的扩展方法作为测试助手。以下是如何使用它的示例:
// test method
var exception = ExceptionAssert.Throws<ArgumentNullException>(
() => organizations.GetOrganization());
Assert.AreEqual("lawbaseFixedContactRepository", exception.ParamName);
关于nunit - 断言从 NUnit 到 MS TEST 的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8213569/