Xunit常用断言整理&带一点Shouldly介绍

每次学新东西的时候总要先祭出官方文档的:https://xunit.github.io/

搞.net core对Xunit应该不会陌生,毕竟也没几个可以选的,刚开始用,自己整理点东西怕忘了,大神就不用看了。

【安装】

在Nuget中搜索xunit,选择xUnit.net和xunit.runner.visualstudio包。

【Tips】

1.两种测试类型:[Fact][Theory]

2.其中[Theory]有三种传参类型:InlineData、ClassData、PropertyData

3.它们还有另外两个参数:

[Fact(DisplayName ="通过测试")]

[Fact(Skip ="跳过测试")]

4.测试类必须是public

【常用断言】

1:Assert.Equal /Assert.NotEqual   判断是否相等

方法:

测试:

2:Assert.Throws   判定异常

可以直接判定会出现的异常,如:

这里将字符串转换成int类型,当然如果传进去的参数不能转换就会抛出<FormatException>的异常:

异常也可以写在方法里:

测试:

这里如果不在方法里判定异常的话,断言的时候是没有异常可抛的,因为这个方法本身是没有问题的,但是在实际项目中,我们定义的参数总会有限制,所以需要自己判定异常。

3:Assert.True /Assert.False   这个一看就是布尔函数专用

测试:

4:Assert.Null/Assert.NotNull

Assert.Empty/Assert.NotEmpty

这两个都可以判定结果集是否为空。一般查询数据库返回结果时会用到。

关于Null和Empty的区别我们举两个例子:

我的理解就是Null是空,连空值都没有的那种空;

Empty是值为空,空字符串也是字符串所以不能用Null,而类变量不赋值默认为空。

在数据库里的区别大概就是这样子的:

应用场景:

前台根据具体信息(常常是主键)直接获取数据,如果数据不存在,一般都是返回Null;

如果是根据筛选条件返回多条数据,并将数据填入既定的表单中,即使没有符合条件的数据,一般也都是返回Empty;

Xunit常用断言我感觉就这七个,其他的我没用过,基本上都是望名生义的,要是日后遇到什么特殊的我再补充。

【should】

简介:Shouldly是一个轻量的断言框架,用于补充.NET框架下的测试工具。Shouldly将焦点放在当断言失败时如何简单精准的给出很好的错误信息。

使用:Nuget引用Shouldly

Xunit已经很好用了,为什么还要用Shouldly呢?

如果有一个方法是这样的,那要怎样测试?

既然有Assert.Throws是不是也有NotThrow什么的?

果然,网上搜了一圈发现以前是有的,Assert.DoesNotThrow,但是好像2.0版本之后就没有了。

所以我借助了Shouldly,它比Xunit更小巧,错误信息更全面,作为补充我觉得很搭。

【断言总集】

Assert:

Assert.All

Assert.Collection

Assert.Contains

Assert.DoesNotContain

Assert.DoesNotMatch

Assert.Empty

Assert.EndsWith

Assert.Equal

Assert.False

Assert.InRange

Assert.IsAssignableFrom

Assert.IsNotType

Assert.IsType

Assert.Matches

Assert.NotEmpty

Assert.NotEqual

Assert.NotInRange

Assert.NotNull

Assert.NotSame

Assert.NotStrictEqual

Assert.Null

Assert.ProperSubset

Assert.PropertyChanged

Assert.Raises

Assert.RaisesAny

Assert.RaiseAnyAsync

Assert.RaiseAsync

Assert.ReferenceEquals

Assert.Same

Assert.Single

Assert.StartsWith

Assert.StrictEqual

Assert.Subset

Assert.Superset

Assert.Throws

Assert.ThrowAny

Assert.ThrowsAnyAsync

Assert.True

Should:

Should.CompleteIn

Should.NotThrow

Should.Throw

Should.ThrowAsync

Should.Equals

Should.ReferenceEquals

Should.GetHashCode

Should.GetType

Should.MemberwiseClone

.ShouldBe

.ShouldBeAssignableTo

.ShouldBeGreaterThan

(以上有参考,整理的比较久不记得了,有熟悉的麻烦帮我补充一下)

原文地址:https://www.cnblogs.com/rulasann/p/9599273.html

时间: 2024-11-07 04:44:29

Xunit常用断言整理&带一点Shouldly介绍的相关文章

git常用指令整理及说明(详细)

git常用指令整理及说明(详细) git常用指令整理及说明详细 安装和配置 工作区版本库和暂存区 本地库和远程库 新建仓库 从远程库克隆 常用查看指令 常用修改指令 撤销修改和版本回退 分支管理 创建和合并分支 解决冲突 bug分支 远程分支 优秀教程笔记 本文是git系列博客的第二篇.本文对指令按照使用场景(建库,查看,修改,分支)进行分类归纳,介绍指令基本含义和用法,方便查阅. 安装和配置 参考我前面的博客:git在各操作系统平台下的安装和配置 工作区.版本库和暂存区 工作区:就是你在电脑里

MYSQL数据库常用知识整理

Evernote Export MYSQL数据库常用知识整理 什么是MYSQL MYSQL的特性 MYSQL存储引擎的分类以及数据文件的介绍 MYSQL赋权 MYSQL备份与恢复 MYSQL的基本操作:增删查改 MYSQL的基本故障判断与处理 MYSQL的调优 MYSQL主主.主从复制的实现 MYSQL大数据备份和恢复 数据文件的损坏与修复 什么是MYSQL MySQL 是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司.目前MySQL被广泛地应用在Internet上的中

DIP常用资源整理

Deep Learning(深度学习): ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):一 ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):二 Bengio团队的deep learning教程,用的theano库,主要是rbm系列,搞python的可以参考,很不错. deeplearning.net主页,里面包含的信息量非常多,有software, reading list, research lab, dataset, demo等,

C#常用控件属性及方法介绍

C#常用控件属性及方法介绍                                               目录 1.窗体(Form) 2.Label (标签)控件 3.TextBox(文本框)控件 4.RichTextBox控件 5.NumericUpDown控件 6.Button(按钮)控件 7.GroupBox(分组框)控件 8.RadioButton(单选按钮)控件 9.CheckBox(复选框)控件 10.ListBox(列表框)控件 11.ComboBox(组合框)控件

MySQL常用指令,java,php程序员,数据库工程师必备。程序员小冰常用资料整理

MySQL常用指令,java,php程序员,数据库工程师必备.程序员小冰常用资料整理 MySQL常用指令(备查) 最常用的显示命令: 1.显示数据库列表. show databases; 2.显示库中的数据表: use mysql; show tables; 3.显示数据表的结构: describe 表名; 4.建库: create database 库名; 5.建表: use 库名: create table 表名 (字段设定列表): 6.删库和删表: drop database 库名; dr

Robotframework 之常用断言关键字简介

任何自动化测试框架或实例中断言是必不可少的,Robotframework同样如此,那下面就介绍下其常用断言关键字. 1.Should Be Empty   判断是否为空,如果不为空,执行失败,示例: ${value} Set Variable hello Should Be Empty  ${value} 断言结果不为空 2.Should Start With 判断某个字符串是否以预期执行的字符串开始,如果以指定的字符串开头,则执行成功,否则执行失败,示例: ${value} Set Varia

常用前端布局,CSS技巧介绍

常用前端布局,CSS技巧介绍 对前端常用布局的整理总结,并对其性能优劣,兼容等情况进行介绍 css常用技巧之可变大小正方形的绘制 1:若通过设置width为百分比的方式,则高度不能通过百分比来控制. 在这个地方可以使用padding来实现,首先,元素的高度=height+padding*2+border*2;所以我们可以将widht设置为0, 然后用padding来实现盒子的高度(若元素padding的值是一个百分比,则是基于其父元素的宽度来计算的) width: 50%; height: 0;

【转载】Git 常用命令整理

Git 常用命令整理 博客分类: Ubuntu / Mac / Github / Aptana / Nginx / Shell / Linux 初始化配置 C代码   #配置使用git仓库的人员姓名 git config --global user.name "Your Name Comes Here" #配置使用git仓库的人员email git config --global user.email [email protected] #配置到缓存 默认15分钟 git config

[转]python_常用断言assert

原文地址:http://www.jianshu.com/p/eea0b0e432da python自动化测试中寻找元素并进行操作,如果在元素好找的情况下,相信大家都可以较熟练地编写用例脚本了,但光进行操作可能还不够,有时候也需要对预期结果进行判断. 常用 这里介绍几个常用断言的使用方法,可以一定程度上帮助大家对预期结果进行判断. assertEqual assertNotEqual assertTrue assertFalse assertIsNone assertIsNotNone asser