.Net 单元测试框架xUnit使用

使用前需要导入下面的NuGet包:(不然可能会导致测试代码无法运行)

.net版本 .net core3.1

Moq这个包只有需要Mock的时候才需要导入(不清楚Mock的话可以留言或自行百度)

 

开始使用

首先先看一个栗子让你能够快速入门

但是如果一点单元测试基础都没有的话建议去百度补一下

        [Fact]
        public void Test()
        {
            int i = 0, j = 0;
            //判断两个数值是否相等
            Assert.Equal(i, j);//成功
            //Assert.NotEqual(); //判断两个数值是否不相等

            var list = new List<string>();
            //判断集合是否为空
            Assert.Empty(list);//成功
            //Assert.NotEmpty(); //判断集合是否不为空


            var str1 = "i love u";
            var str2 = "i";
            //判断str2是否在str1中
            Assert.Contains(str2, str1);
            //Assert.DoesNotContain(str2, str1);//判断str2是否不在    
            str1中

            string str = null;
            //判断对象是否为Null
            Assert.Null(str);
            //Assert.Null(str);//判断对象是否不为Null
        }  

 

如果需要深入了解一下课往下看

xUnit的常用Attribute标记

xUnit

备注

[Fact]

标记为测试方法

Assert.Throws/ Record.Exception

期望抛出异常

Constructor(即构造函数)

在每个测试方法执行之前用于初始化的方法

IDisposable.Dispose

在每个测试方法执行之后用于结束的方法

IUseFixture<T>

在所有测试方法执行之前用于初始化的方法

IUseFixture<T>

在所有测试方法执行之后用于结束的方法

[Fact(Skip="跳过原因")]

忽略被标记的方法

[Fact(Timeout=n)]

用于指定被测试方法的最大执行时间(单位毫秒),如果超过指定时间则会被标记为测试失败

 

 

 

 

 

 

 

 

 

 

 

 

xUnit.Net的断言(Assertions)

xUnit.net

备注

Equal

相等比较

NotEqual

不相等比较

NotSame

不相同比较

Same

相同比较

Contains

 包含

DoesNotContain

 不包含

DoesNotThrow

 

InRange

 

IsAssignableFrom

 

Empty

 

False

 

IsType

 

NotEmpty

 

IsNotType

 

NotNull

 

Null

 

True

 

NotInRange

确保数据在某个范围内

Throws

确保会抛出异常

posted @ 2020-09-01 17:00  茶山的麋鹿  阅读(432)  评论(0)    收藏  举报