Verify.Xunit包使用方法
Verify.Xunit包使用方法
背景知识
Verify.Xunit:一个与xUnit测试框架结合使用的扩展库,旨在帮助简化和增强对模拟对象的验证过程。
模拟对象:单元测试中用来替代或模拟真实对象的一个特殊对象,能够模拟某个依赖项的行为。
依赖性:外部服务、API调用等。
使用方法
版本
| .NET框架 | xUnit | Verify.Xunit |
|---|---|---|
| .NET6.0 | 2.9.3 | 26.6.0 |
使用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 阅读(57) 评论(0) 收藏 举报
浙公网安备 33010602011771号