VerifyTests/Verify 项目中的文件命名规范详解

VerifyTests/Verify 项目中的文件命名规范详解

Verify Verify - 一个快照工具,用于简化复杂数据模型和文档的断言,适合从事自动化测试和持续集成/持续部署(CI/CD)的程序员。 Verify 项目地址: https://gitcode.com/gh_mirrors/ve/Verify

概述

VerifyTests/Verify 是一个用于.NET测试验证的库,它通过对比实际结果与预期结果来验证测试的正确性。在这个过程中,文件命名规范起着至关重要的作用,因为它决定了验证文件的生成方式和组织结构。本文将深入解析Verify项目中的文件命名机制,帮助开发者更好地理解和应用这一功能。

基本命名格式

Verify使用以下基本格式来命名验证文件:

{目录}/{测试类名}.{测试方法名}_{参数}_{UniqueFor1}_{UniqueFor2}_{UniqueForX}.verified.{扩展名}

这个格式由多个部分组成,每个部分都可以根据需要进行自定义。

目录配置

默认行为

默认情况下,验证文件会生成在包含测试的目录中。

自定义目录

可以通过以下方式自定义验证文件的存储目录:

实例方式
var settings = new VerifySettings();
settings.UseDirectory("CustomDirectory");
await Verify("valueUseDirectory", settings);
流式API方式
await Verify("valueUseDirectoryFluent")
    .UseDirectory("CustomDirectory");

以上两种方式都会生成类似 CustomDirectory/TypeName.MethodName.verified.txt 的文件。

测试类名配置

默认行为

默认使用包含测试的类名作为文件名的一部分。

自定义类名

可以通过以下方式自定义类名部分:

实例方式
var settings = new VerifySettings();
settings.UseTypeName("CustomTypeName");
await Verify("valueUseTypeName", settings);
流式API方式
await Verify("valueUseTypeNameFluent")
    .UseTypeName("CustomTypeName");

这会生成类似 CustomTypeName.MethodName.verified.txt 的文件。

测试方法名配置

默认行为

默认使用测试方法名作为文件名的一部分。

自定义方法名

可以通过以下方式自定义方法名部分:

实例方式
var settings = new VerifySettings();
settings.UseMethodName("CustomMethodName");
await Verify("valueUseMethodName", settings);
流式API方式
await Verify("valueUseMethodNameFluent")
    .UseMethodName("CustomMethodNameFluent");

这会生成类似 TestClass.CustomMethodNameFluent.verified.txt 的文件。

同一方法中的多次验证

UseMethodName 特别适用于同一测试方法中需要多次验证的情况:

[Fact]
public Task MultipleCalls() =>
    Task.WhenAll(
        Verify("Value1MultipleCalls")
            .UseMethodName("MultipleCalls_1"),
        Verify("Value1MultipleCalls")
            .UseMethodName("MultipleCalls_2"));

完全自定义文件名

使用UseFileName

要完全控制文件名,可以使用 UseFileName

实例方式
var settings = new VerifySettings();
settings.UseFileName("CustomFileName");
await Verify("valueUseFileName", settings);
流式API方式
await Verify("valueUseFileNameFluent")
    .UseFileName("CustomFileNameFluent");

这会生成类似 CustomFileNameFluent.verified.txt 的文件。

注意

  • 不能与 UseTypeNameUseMethodNameUseParameters 同时使用
  • 可以与 UseDirectoryUniqueFor* 组合使用

UniqueFor特性

UniqueFor* 系列方法允许在文件名中添加特定分隔符,用于区分不同的运行环境或配置。

支持的UniqueFor方法

  1. UniqueForRuntime() - 根据运行时环境区分
  2. UniqueForAssemblyConfiguration() - 根据程序集配置区分
  3. UniqueForRuntimeAndVersion() - 根据运行时环境和版本区分
  4. UniqueForArchitecture() - 根据系统架构区分
  5. UniqueForOSPlatform() - 根据操作系统平台区分

示例结果

对于多目标框架项目,可能会生成以下文件:

UniqueForSample.Runtime.Core.verified.txt
UniqueForSample.Runtime.Net.verified.txt
UniqueForSample.RuntimeAndVersion.Core3_0.verified.txt
UniqueForSample.RuntimeAndVersion.Net4_8.verified.txt
UniqueForSample.Architecture.X86.verified.txt
UniqueForSample.Architecture.X64.verified.txt

文件扩展名配置

默认行为

默认文件扩展名是 .txt,生成的文件名类似 TestClass.TestMethod.verified.txt

自定义扩展名

可以在方法级别或类级别覆盖默认扩展名:

[Fact]
public Task AtMethod() =>
    Verify(
        target: """
                <note>
                  <to>Joe</to>
                  <from>Kim</from>
                  <heading>Reminder</heading>
                </note>
                """,
        extension: "xml");

这会生成 .verified.xml 文件而不是默认的 .verified.txt

最佳实践

  1. 保持一致性:在项目中统一命名规范,便于团队协作和维护
  2. 合理使用UniqueFor:根据实际需要选择适当的UniqueFor方法,避免过度区分
  3. 语义化命名:为自定义文件名和方法名选择有意义的名称
  4. 考虑跨平台兼容性:文件名应避免使用特殊字符,确保在不同操作系统上都能正常工作

通过合理利用Verify的文件命名功能,可以大大提高测试结果的可读性和可维护性,特别是在复杂的测试环境和多配置场景下。

Verify Verify - 一个快照工具,用于简化复杂数据模型和文档的断言,适合从事自动化测试和持续集成/持续部署(CI/CD)的程序员。 Verify 项目地址: https://gitcode.com/gh_mirrors/ve/Verify

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朱龙阔Philippa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值