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

我正在使用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。

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

最佳答案

看起来这应该工作:

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

10-05 21:35