Verify.Xunit包使用方法
Verify.Xunit包使用方法
背景知识
Verify.Xunit:一个与xUnit测试框架结合使用的扩展库,旨在帮助简化和增强对模拟对象的验证过程。
模拟对象:单元测试中用来替代或模拟真实对象的一个特殊对象,能够模拟某个依赖项的行为。
依赖性:外部服务、API调用等。
使用方法
版本
使用NuGet安装Verify.Xunit软件包
测试过程
- 给定一个要测试的类
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 // 过熟 }
- 创建一个测试类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 | 测试结果 | 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
③ 差异工具TortoiseGitMerge显示类名.测试方法名.received.txt
和类名.测试方法名.verified.txt
两个文件内容差异
④ 关闭差异工具,类名.测试方法名.verified.txt
文件被保留
- 接受差异,或者直接把差异内容复制粘贴到 .verified.txt文件中

或
- 再次运行测试:
- 测试结果(第二次测试结果):
- 修改 .verfied.txt文件内容:
- 再次运行测试,测试结果(第三次测试结果):
放大信息提示框内容:

图中序号映射:
序号 | 名称 | 描述 |
---|---|---|
1 | verified.txt文件内容 | 步骤9修改的 |
2 | 测试类同级目录下的文件 | .received.txt文件出现了 |
3 | 显示差异 | 两个文件的内容差异 |
具体描述:
① 运行测试方法
② 创建一个新文件 类名.测试方法名.received.txt
③ 差异工具TortoiseGitMerge显示类名.测试方法名.received.txt
和类名.测试方法名.verified.txt
两个文件内容差异
④ 关闭差异工具,类名.测试方法名.received.txt
文件被保留
- 接受差异,或者直接把差异内容从.received.txt文件复制粘贴到 .verified.txt文件中

或
- 再次运行测试,测试结果(第四次测试结果):
附录
测试中常见的几个单词:
单词 | 含义 |
---|---|
Assert | 断言 |
Verify | 验证 |
Fact | 事实 |
引用
文章声明
内容准确性:我会尽力确保所分享信息的准确性和可靠性,但由于个人知识有限,难免会有疏漏或错误。如果您在阅读过程中发现任何问题,请不吝赐教,我将及时更正。
posted on 2025-01-24 16:37 wubing7755 阅读(24) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现