Verify.Xunit包使用方法

Verify.Xunit包使用方法

背景知识

Verify.Xunit:一个与xUnit测试框架结合使用的扩展库,旨在帮助简化和增强对模拟对象的验证过程。

模拟对象:单元测试中用来替代或模拟真实对象的一个特殊对象,能够模拟某个依赖项的行为。

依赖性:外部服务、API调用等。

使用方法

版本

.NET框架 xUnit Verify.Xunit
.NET6.0 2.9.3 26.6.0

使用NuGet安装Verify.Xunit软件包

image

测试过程

  1. 给定一个要测试的类
public class Apple
{
private string Name { get; set; }
private AppleType AppleType { get; set; }
public Apple(string name, AppleType appleType)
{
Name = name;
AppleType = appleType;
}
public (string, AppleType) GetApple()
{
return (Name, AppleType);
}
}

其中,AppleType为枚举类型:

public enum AppleType
{
Unrip, // 未成熟
ParitallyRipe, // 部分成熟
Ripe, // 完全成熟
Overripe // 过熟
}
  1. 创建一个测试类Tests.cs
public class Tests
{
[Fact]
public Task VerifyAppleData()
{
// arrange
var apple = new Apple("Good Apple", AppleType.ParitallyRipe);
// act
var data = apple.GetApple();
// verify
return Verify(data);
}
}
  1. 运行测试前:

测试类所在文件夹的内容:

image

测试未运行:

image

  1. 运行测试:

image

  1. 测试结果(第一次测试结果):

image

放大信息提示框内容:

图片失效即显示

图中序号映射:

序号 名称 描述
1 测试结果 Failed:VerifyException:Directory:xxx
2 Tests.VerifyAppleData.verified.txt 类名.测试方法名.verified.txt
3 显示差异 通过差异工具TortoiseGitMerge.exe显示差异
4 Rider Unit Test Runner弹框 Kill orphaned processes: TortoiseGitMerge.exe
5 信息提示框 显示报错信息

具体描述:

① 运行测试方法

② 创建一个新文件 类名.测试方法名.verified.txt

image

③ 差异工具TortoiseGitMerge显示类名.测试方法名.received.txt类名.测试方法名.verified.txt两个文件内容差异

④ 关闭差异工具,类名.测试方法名.verified.txt文件被保留

  1. 接受差异,或者直接把差异内容复制粘贴到 .verified.txt文件中
图片失效即显示

image

  1. 再次运行测试:

image

  1. 测试结果(第二次测试结果):

image

  1. 修改 .verfied.txt文件内容:

image

  1. 再次运行测试,测试结果(第三次测试结果):

image

放大信息提示框内容:

图片失效即显示

图中序号映射:

序号 名称 描述
1 verified.txt文件内容 步骤9修改的
2 测试类同级目录下的文件 .received.txt文件出现了
3 显示差异 两个文件的内容差异

具体描述:

① 运行测试方法

② 创建一个新文件 类名.测试方法名.received.txt

image

③ 差异工具TortoiseGitMerge显示类名.测试方法名.received.txt类名.测试方法名.verified.txt两个文件内容差异

image

④ 关闭差异工具,类名.测试方法名.received.txt文件被保留

  1. 接受差异,或者直接把差异内容从.received.txt文件复制粘贴到 .verified.txt文件中
图片失效即显示

image

  1. 再次运行测试,测试结果(第四次测试结果):

image

附录

测试中常见的几个单词:

单词 含义
Assert 断言
Verify 验证
Fact 事实

引用

  1. VerifyTests Github
    https://github.com/VerifyTests/Verify?tab=readme-ov-file#snippet-SampleTestXunit

文章声明

内容准确性:我会尽力确保所分享信息的准确性和可靠性,但由于个人知识有限,难免会有疏漏或错误。如果您在阅读过程中发现任何问题,请不吝赐教,我将及时更正。

posted on   wubing7755  阅读(24)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示