【发布时间】:2014-05-20 00:20:17
【问题描述】:
大家好(和女孩),
我正在使用 xUnit 在 .NET 中构建我的测试单元,并且我正在尝试断言某个方法是否引发了异常。我对异常的确切类型并不真正感兴趣,只要它继承自某个基本异常类即可。 我该怎么做?
我已经在 Google 上搜索了一些开箱即用的方法,但似乎我必须编写自己的类才能做到这一点。
【问题讨论】:
标签: .net unit-testing tdd xunit
大家好(和女孩),
我正在使用 xUnit 在 .NET 中构建我的测试单元,并且我正在尝试断言某个方法是否引发了异常。我对异常的确切类型并不真正感兴趣,只要它继承自某个基本异常类即可。 我该怎么做?
我已经在 Google 上搜索了一些开箱即用的方法,但似乎我必须编写自己的类才能做到这一点。
【问题讨论】:
标签: .net unit-testing tdd xunit
此功能已经存在于 xunit.net (v2-beta) 中,但它是 try-catch 块,可以简单地解决您在当前稳定版本 (v1) 上的问题。
[Fact]
public void Test()
{
try
{
// some test logic....
Assert.True(false, "Exception should be thrown.");
}
catch
{
}
}
这是另一种方式。
[Fact]
public void AnotherTest()
{
var exception = Record.Exception(() =>
{
/*test logic..*/
});
Assert.IsAssignableFrom<Exception>(exception);
}
【讨论】: