FluentAssertions Throw() 未列出使用
FluentAssertions Throw() not listed to use
我正在将 FluentAssertions 与 NUnit 一起使用,我意识到没有列出方法 Throw() 和其他相关方法供我使用。我是否必须安装任何其他软件包才能使用此方法?
我使用的是 NuGet 安装的最新版本 5.4.2。
文档没有说得很清楚,但是 Should().Throw()
有 应用于 Action (或者,正如@指出的那样ArturKrajewski 在下面的评论中,Func
和 async
调用):
Action test = () => throw new InvalidOperationException();
test.Should().Throw<InvalidOperationException>();
因此测试可能如下所示:
public class AssertThrows_ExampleTests {
[Test]
public void Should_Throw_Action() {
var classToTest = new TestClass();
// Action for sync call
Action action = () => classToTest.MethodToTest();
action.Should().Throw<InvalidOperationException>();
}
[Test]
public void Should_Throw_Action_Async() {
var classToTest = new TestClass();
// Func<Task> required here for async call
Func<Task> func = async () => await classToTest.MethodToTestAsync();
func.Should().Throw<InvalidOperationException>();
}
private class TestClass {
public void MethodToTest() {
throw new InvalidOperationException();
}
public async Task MethodToTestAsync() {
throw new InvalidOperationException();
}
}
}
我正在将 FluentAssertions 与 NUnit 一起使用,我意识到没有列出方法 Throw() 和其他相关方法供我使用。我是否必须安装任何其他软件包才能使用此方法?
我使用的是 NuGet 安装的最新版本 5.4.2。
文档没有说得很清楚,但是 Should().Throw()
有 应用于 Action (或者,正如@指出的那样ArturKrajewski 在下面的评论中,Func
和 async
调用):
Action test = () => throw new InvalidOperationException();
test.Should().Throw<InvalidOperationException>();
因此测试可能如下所示:
public class AssertThrows_ExampleTests {
[Test]
public void Should_Throw_Action() {
var classToTest = new TestClass();
// Action for sync call
Action action = () => classToTest.MethodToTest();
action.Should().Throw<InvalidOperationException>();
}
[Test]
public void Should_Throw_Action_Async() {
var classToTest = new TestClass();
// Func<Task> required here for async call
Func<Task> func = async () => await classToTest.MethodToTestAsync();
func.Should().Throw<InvalidOperationException>();
}
private class TestClass {
public void MethodToTest() {
throw new InvalidOperationException();
}
public async Task MethodToTestAsync() {
throw new InvalidOperationException();
}
}
}