首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将结果添加到TestCaseSource

将结果添加到TestCaseSource
EN

Stack Overflow用户
提问于 2019-07-10 16:50:00
回答 2查看 1.1K关注 0票数 4

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

我正在使用NUnit。我使用TestCaseSource是因为我试图给出一个列表作为参数。我有来自这个question的解决方案。我的测试如下所示:

代码语言:javascript
复制
[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一样。

TestCases拥有Result parameter。如何将结果添加到TestCaseSource,以便测试多个计算?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-10 16:54:24

看起来这应该行得通:

代码语言:javascript
复制
private static readonly object[] _data =
    {
        new object[] { new List<string> { "3", "+", "3" }, "6" },
        new object[] { new List<string> { "5", "+", "10" }, "15" }
    };

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

    Assert.That(result, Is.EqualTo(expectedResult));
}
票数 3
EN

Stack Overflow用户

发布于 2019-07-10 17:12:14

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

代码语言:javascript
复制
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;
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56966914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档