gpt4 book ai didi

c# - 如何根据 Arrange-Act-Assert 范式处理 nUnit 3 中的多个异常测试?

转载 作者:行者123 更新时间:2023-11-28 21:04:21 25 4
gpt4 key购买 nike

在 nUnit 3 中,进行了相当大的更改,其中 ExpectedException 已被删除以替换为断言模型。

我找到了 thisthis示例,但建议改为使用 Assert.That() 所以我想使用 this approach如下所示。

//Arrange
string data = "abcd";
//Act
ActualValueDelegate<object> test = () => data.MethodCall();
//Assert
Assert.That(test, Throws.TypeOf<ExceptionalException>());

但是,我想针对许多不同的参数测试断言,但我似乎无法让它工作。我尝试了以下方法。

List<List<Stuff>> sets = new[] { 0, 1, 2 }
.Select(_ => Enumerable.Repeat(new Stuff(_), _).ToList())
.ToList();
Assert.Throws(() => Transform.ToThings(new List<Stuff>()));

上面的工作是根据需要创建列表列表并测试 Transform.Stuff() 调用。但是,我还没有想出一种方法来集合插入到事物中

这可能吗?例子在哪里? (大多数搜索淹没在 nUnit 2.x 和官方文档站点上,我看不到任何帮助。)

最佳答案

您应该考虑使用 TestCaseSource定义方法输入的属性:

[TestCaseSource("StuffSets")]
public void ToThings_Always_ThrowsAnException(List<Stuff> set)
{
// Arrange
// Whatever you need to do here...

// Act
ActualValueDelegate<object> test = () => Transform.ToThings(set);

// Assert
Assert.That(test, Throws.TypeOf<SomeKindOfException>());
}

public static IEnumerable<List<Stuff>> StuffSets =
{
get
{
return new[] { 0, 1, 2 }
.Select(_ => Enumerable.Repeat(new Stuff(_), _).ToList())
.ToList();
}
};

这将调用 ToThings_Always_ThrowsAnException每个List<Stuff>一次从 StuffSets 返回的(这里,三次)。

关于c# - 如何根据 Arrange-Act-Assert 范式处理 nUnit 3 中的多个异常测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39660806/

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