gpt4 book ai didi

c# - 将结果添加到 TestCaseSource

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

我有一个简单的方法,可以从列表中计算给定的计算。我想为此方法编写一些测试。

我正在使用 NUnit。我正在使用 TestCaseSource 因为我试图给出一个列表作为参数。我有这个 question 的解决方案. 我的测试看起来像这样:

[TestFixture]
public class CalcViewModelTests : CalcViewModel
{
private static readonly object[] _data =
{
new object[] { new List<string> { "3", "+", "3" } },
new object[] { new List<string> { "5", "+", "10" } }
};

[Test, TestCaseSource(nameof(_data))]
public void Test(List<string> calculation)
{
var result = SolveCalculation(calculation);

Assert.That(result, Is.EqualTo("6"));
}
}

我想像使用 testCases 一样测试多个计算。

测试用例有 Result parameter .我如何将结果添加到 TestCaseSource 以便我可以测试多个计算?

最佳答案

您可以使用 TestCaseData的属性。它允许您将测试数据封装在一个单独的类中并重新用于其他测试

public class MyDataClass
{
public static IEnumerable TestCases
{
get
{
yield return new TestCaseData("3", "+", "3").Returns("6");
yield return new TestCaseData("5", "+", "10").Returns("15");
}
}
}

[Test]
[TestCaseSource(typeof(MyDataClass), nameof(MyDataClass.TestCases))]
public string Test(List<string> calculation)
{
var result = SolveCalculation(calculation);
return result;
}

关于c# - 将结果添加到 TestCaseSource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56966914/

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