• xunit inlinedata classdata memberdata


    https://andrewlock.net/creating-parameterised-tests-in-xunit-with-inlinedata-classdata-and-memberdata/

    MemberData

    public class CalculatorTests
    {
        [Theory]
        [MemberData(nameof(Data), MemberType= typeof(CalculatorData))]
        public void CanAddTheoryMemberDataMethod(int value1, int value2, int expected)
        {
            var calculator = new Calculator();
    
            var result = calculator.Add(value1, value2);
    
            Assert.Equal(expected, result);
        }
    }
    
    public class CalculatorData
    {
        public static IEnumerable<object[]> Data =>
            new List<object[]>
            {
                new object[] { 1, 2, 3 },
                new object[] { -4, -6, -10 },
                new object[] { -2, 2, 0 },
                new object[] { int.MinValue, -1, int.MaxValue },
            };
    }
    public class VersionList
        {
            private static Dictionary<string, Version> dic;
    
            static VersionList()
            {
                dic = new Dictionary<string, Version>();
                dic.Add("05000007", new Version(5, 0, 0, 7));
                dic.Add("05000800", new Version(5, 0, 8, 0));
                dic.Add("05000900", new Version(5, 0, 9, 0));
            }
    
            public static IEnumerable<object[]> GetVersion(string key)
            {
                if (!dic.ContainsKey(key))
                {
                    throw new Exception($"Can not find key {key} from VersionList.");
                }
    
                var list = new List<object[]>
                {
                    new object[] {dic[key]},
                };
    
                return list;
            }
        }

    让测试类继承VersionList

            [Theory]
            [MemberData(nameof(GetVersion), parameters: "05000007")]
            [MemberData(nameof(GetVersion), parameters: "05000800")]
            [MemberData(nameof(GetVersion), parameters: "05000900")]
            public void CmsUpgradeTest(Version tempVersion)
            {
                Output.WriteLine(tempVersion.ToString());
            
            }
  • 相关阅读:
    centos7 yum错误相关
    centos7 jenkins
    vim 常用命令
    Effective STL(第7条)
    【hihoCoder】1049.后序遍历
    C++ 单元测试 Cpputest
    【hihoCoder】1041. 国庆出游
    LeetCode(43. Multiply Strings)
    【LeetCode】16. 4Sum
    【LeetCode】1. Two Sum
  • 原文地址:https://www.cnblogs.com/chucklu/p/10030894.html
Copyright © 2020-2023  润新知