gpt4 book ai didi

c# - FluentAssertions Throw() 未列出使用

转载 作者:行者123 更新时间:2023-12-04 14:51:47 25 4
gpt4 key购买 nike

我正在将 FluentAssertions 与 NUnit 一起使用,但我意识到 Throw() 方法和其他相关方法并未列出供我使用。我是否必须安装任何其他软件包才能访问此方法?

我使用的是 NuGet 安装的最新版本 5.4.2。

最佳答案

文档没有说得很清楚,但是 Should().Throw() 应用于 Action (或者,正如@ArturKrajewski 在下面的评论中指出的,一个 Funcasync 调用):

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();
}
}
}

关于c# - FluentAssertions Throw() 未列出使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53198464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com