.Net 单元测试框架xUnit使用
使用前需要导入下面的NuGet包:(不然可能会导致测试代码无法运行)
.net版本 .net core3.1
Moq这个包只有需要Mock的时候才需要导入(不清楚Mock的话可以留言或自行百度)
开始使用
首先先看一个栗子让你能够快速入门
但是如果一点单元测试基础都没有的话建议去百度补一下
[Fact]
public void Test()
{
int i = , j = ;
//判断两个数值是否相等
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 |
确保会抛出异常 |
.Net 单元测试框架xUnit使用的更多相关文章
- C#常用单元测试框架比较:XUnit, NUnit, 和 Visual Studio(MSTest)
做过单元测试的同学大概都知道以上几种测试框架,但我一直很好奇它们到底有什么不同,然后搜到了一篇不错的文章清楚地解释了这几种框架的最大不同之处. 地址在这里:http://www.tuicool.com ...
- JavaScript单元测试框架JsUnit基本介绍和使用
JavaScript单元测试框架JsUnit基本介绍和使用 XUnit framework XUnit是一套标准化的独立于语言的概念和结构集合,用于编写和运行单元测试(Unit tests). 每一个 ...
- JavaScript单元测试框架-Jasmine
Jasmine的开发团队来自PivotalLabs,他们一开始开发的JavaScript测试框架是JsUnit,来源于著名的JAVA测试框架JUnit.JsUnit是xUnit的JavaScript实 ...
- Javascript单元测试框架比较Qunit VS Jasmine
Javascript单元测试框架比较Qunit VS Jasmine 工欲行其事必先利其器,好的单元测试框架是TDD成功的一半.Javascript优秀的测试框架很多, 包括Jasmine,Qunit ...
- C#常用的单元测试框架
C#常用的单元测试框架有XUnit .NUnit .MSTest 做过单元测试的同学大概都知道以上几种测试框架,这几种框架除了标注测试类和方法的特性用的不一样之外,XUnit 和 NUnit 是非常相 ...
- Python必会的单元测试框架 —— unittest
用Python搭建自动化测试框架,我们需要组织用例以及测试执行,这里博主推荐Python的标准库——unittest. unittest是xUnit系列框架中的一员,如果你了解xUnit的其他成员,那 ...
- Java单元测试框架 JUnit
Java单元测试框架 JUnit JUnit是一个Java语言的单元测试框架.它由Kent Beck和Erich Gamma建立,逐渐成为源于KentBeck的sUnit的xUnit家族中为最成功的一 ...
- [测试]单元测试框架NUnit
说到测试,相信大家都或多或少了解. 按照各自分类,就自己知道包括 A.单元测试.集成测试.系统测试 B.白盒测试.黑盒测试 C.压力测试.性能测试.安全测试 ...... 反正是太多太多.就做开发以来 ...
- 聊聊 Python 的单元测试框架(二):nose 和它的继任者 nose2
作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...
随机推荐
- C++程序员容易走入性能优化误区!对此你怎么看呢?
有些C++ 程序员,特别是只写C++ 没有写过 Python/PHP 等慢语言的程序员,容易对性能有心智负担,就像着了魔一样,每写3 行代码必有一行代码因为性能考虑而优化使得代码变形(复杂而晦涩). ...
- bzoj 3436小K的农场
3436: 小K的农场 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 2327 Solved: 1105 [Submit][Status][Discu ...
- day2. 六大基本数据类型简介
一.基本数据类型 Number 数字类型 (int float bool complex) str 字符串类型 list 列表类型 tuple 元组类型 set 集合类型 dict 字典类型 二.Nu ...
- 笨办法学python3练习代码ex21.py
def add(a, b): print(f"ADDING {a} + {b}") return (a + b) def subtract(a, b): #subtract :减去 ...
- MySQL Notifier 缺少根元素解决方法
删除C:\Users(电脑用户名)\AppData\Roaming\Oracle\MySQL Notifier\settings.config文件即可
- 【BZOJ4173】数学 题解(数论)
前言:体验到了推式子的快感orz 题目大意:求$\varphi(n)*\varphi(m)*\sum_{n\ mod\ k+m\ mod\ k\geq k} \varphi(k)\ mod\ 9982 ...
- Linux下 flash工具的使用
使用命令前用cat /proc/mtd 查看一下mtdchar字符设备:或者用ls -l /dev/mtd* #cat /proc/mtd dev: size erasesize name ...
- GPS位置显示在地图上
源码分析博客地址:https://blog.csdn.net/wuquan_1230/article/details/79614974 工具下载地址:http://download.csdn.net/ ...
- 036_go语言中的原子计数器
代码演示 package main import ( "fmt" "runtime" "sync/atomic" "time&qu ...
- 面向对象的js编程 Call和apply方法
JavaScript中有一个call和apply方法,其作用基本相同,但也有略微的区别. 一.方法定义 1.call 方法 语法:call([thisObj[,arg1[, arg2[, [,.arg ...