nunit - 断言从 NUnit 到 MS TEST 的异常

标签 nunit mstest

我有一些测试,我正在检查异常中的参数名称。
我如何在 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/

相关文章:

xml - Bamboo NUnit 解析器无法从其他文件夹找到测试结果报告

c# - 解决方案的一个或多个单元测试项目

unit-testing - 在MSTest运行时动态创建单元测试方法

.net - 集成测试

c# - 在报告中使用 NUnit 显示复杂类型参数的实际值

testing - NUnit 有时以 "unable to locate fixture"结尾

.net - MSTest V2 在哪里

c# - 如何在单元测试之间重置 EF7 InMemory 提供程序?

.net - VS2012 无法运行测试

c# - Moq 中的匹配设置问题