UnitTest之Xunit

Unit Test

1.建立单元测试
新建一个类库项目,在Nuget中搜索xunit,选择 xUnit.net 和 xunit.runner.visualstudio 插件包安装。
xunit.runner.visualstudio(测试资源管理器),安装之后可以在 '测试--》窗口--》测试资源管理器' 打开测试资源管理器界面
* 如果想在CMD下调试,可以安装xunit.runner.console 插件包

2.xUnit.Net常用的标记(Fact 事实)
[Fact] 标记为测试方法,可设置参数:Skip,DisplayName,Timeout
[Fact(Skip ="跳过测试")]//临时忽略被标记的方法
[Fact(DisplayName ="通过测试")]
[Theory] 配合InlineData可以直接在一个方法中测试多组参数

3.xUnit.Net的断言(Assertions)
//Assert.Equal(resultModel.eAccountID, 1169676);
Equal 相等比较
NotEqual 不相等比较
NotEmpty 不为空
Contains ......
* Model比较可以用 CompareNETObjects,在 Nuget 中查询 CompareNETObjects 插件包安装

private CompareLogic compareLogic;
compareLogic = new CompareLogic();

var expectedResult = GetCaseModel();
ComparisonResult compareResult = compareLogic.Compare(expectedResult, new Case() { CaseID = 1, BankCode = "2" });
Assert.Equal(true, compareResult.AreEqual);

4.在XUnit中使用Moq模拟EntityFramework Core下的DbSet
在 Nuget 中查询 Moq 插件包安装

单元测试中使用Moq对EF的DbSet进行mock

刚用上Moq,就用它解决了一个IUnitOfWork的mock问题

代码地址:https://gitee.com/516877626/UnitTestXUnit.git

原文地址:https://www.cnblogs.com/Tom-yi/p/8249976.html