xUnit 单元测试

一、xUnit 单元测试

官网地址:Home > xUnit.net

1、概述

1.1、新建个控制台项目

cs 复制代码
public class Class1
    {
        public int Add(int x, int y)
        {
            return x + y;
        }

    }

2、建个xUnit测试项目

cs 复制代码
public class UnitTest1
    {
        [Fact]
        public void Test1()
        {
            Class1 class1 = new Class1();
            int sum = class1.Add(2, 3);
            Assert.Equal(5, sum);
        }
    }


鼠标放到方法上,右键运行测试即可
2、用法

2.1、基础应用

cs 复制代码
    public class UnitTest1
    {
        private readonly ITestOutputHelper _outputHelper;
        public UnitTest1(ITestOutputHelper testOutput)
        {
            _outputHelper = testOutput;
        }

        [Fact]
        //[Trait("name","kawa1")]
        public void Test1()
        {
            _outputHelper.WriteLine("第一个测试");//自定义测试输出信息
            Class1 class1 = new Class1();
            int sum = class1.Add(2, 3);
            Assert.Equal(5, sum);//以下断言皆为true

            string name = "come kawa";
            Assert.True(1==1);

            Assert.StartsWith("come",name);
            Assert.Contains("ka", name);
            Assert.NotEqual("come ka", name);
            Assert.Matches(@"^[a-z]*\s[a-z]*", name);

            Assert.InRange(sum, 3.1, 6.9);//是否在某一范围

            Assert.NotNull(name);

            Assert.IsType<Class1>(class1);

        }
 
        
    }



        [Fact(Skip = "不跑这个测试")]//忽略测试
        [Trait("name","kawa1")] //分组

2.2、数据驱动测试

cs 复制代码
        1、
        [Theory]
        [InlineData(1,2,3)]
        [InlineData(3,4,7)]
        [InlineData(4,2,6)]
        public void Test2(int x, int y, int except)
        {
            int act = new Class1().Add(x, y);
            Assert.Equal(act, except);
        }


        2、
        [Theory]
        [MemberData(nameof(Class1.ListTest),MemberType = typeof(Class1))]
        public void Test3(int x, int y, int except)
        {
            _outputHelper.WriteLine("Test3测试");//自定义测试输出信息
            int act = new Class1().Add(x, y);
            Assert.Equal(except, act);
        }



        public static List<object[]> ListTest = new List<object[]> //需要是object类型且是静态
        {
            new object[] { 1, 2 ,3},
            new object[] { 2, 3 ,5 },
            new object[] { 3, 6 ,9 }
        }; 


        3、自定义Data Attribute
        [Theory]
        [DataTest]
        public void Test4(int x, int y, int except)
        {
            _outputHelper.WriteLine("Test4测试");//自定义测试输出信息
            int act = new Class1().Add(x, y);
            Assert.Equal(except, act);
        }



    public class DataTestAttribute: DataAttribute
    {
        //继承DataAttribute,并重写GetData
        public override IEnumerable<object[]> GetData(MethodInfo testMethod)
        {
            yield return new object[] { 0, 100, 100 };
            yield return new object[] { 1, 100, 101 };
            yield return new object[] { 200, 100, 300 };
            yield return new object[] { 15, 100, 115 };
        }
    }
相关推荐
万法若空1 分钟前
C/C++ 类型别名定义方式对比
java·c语言·c++
Java后端的Ai之路23 分钟前
03、Python - 抽象工厂模式
开发语言·python·设计模式·抽象工厂模式·通用智慧
吴声子夜歌23 分钟前
Java——开发中通用的方法和准则(一)
java·开发语言
mmsy102425 分钟前
缓存知识点总结
java·spring·缓存
运行时异常27 分钟前
【WMS 仓储系统集成 AI Agent 实战】第 3 讲:Spring Security 6 + JWT——addFilterBefore 一词之差,全站 401
java·后端
2601_9620715738 分钟前
如何利用SpringSecurity进行认证与授权
java·服务器·数据库
2601_9620697740 分钟前
SpringBoot开发——初步了解SpringBoot
java·spring boot·后端
常驻客栈42 分钟前
B-深入理解计算机系统第3版之第11章:网络编程
开发语言·笔记·学习笔记·常驻客栈·深入理解计算机系统
旧梦95271 小时前
Java 单例模式:从基础到实战的完整指南
java·开发语言·单例模式
jay神1 小时前
【计算机毕业设计】基于Spring Boot的宠物领养管理系统
java·spring boot·后端·vue·毕业设计·宠物