【发布时间】:2022-11-06 16:41:01
【问题描述】:
我的代码在 JSON 中生成一个映射,其中属性名称是内联 Guid。 在验证输出时,它总是会生成一个新结果,因为属性名称中的 Guid 不会被清除。
[Test]
public Task GuidIsScrubbed()
{
const string serialized = @"{
""GuidAsValue"": ""ee7f4fa8-48b4-48b7-b962-586870a09d4e"",
""EmbeddedGuidAsValue"": ""Something(ee7f4fa8-48b4-48b7-b962-586870a09d4e)Something"",
""ee7f4fa8-48b4-48b7-b962-586870a09d4e"": ""GuidAsKey"",
""Something(ee7f4fa8-48b4-48b7-b962-586870a09d4e)Something"": ""EmbeddedGuidAsKey""
}";
var verifySettings = new VerifySettings();
verifySettings.ScrubInlineGuids();
return Verifier.VerifyJson(serialized, verifySettings);
}
生成以下输出
{
GuidAsValue: Guid_1,
EmbeddedGuidAsValue: Something(Guid_1)Something,
ee7f4fa8-48b4-48b7-b962-586870a09d4e: GuidAsKey,
Something(ee7f4fa8-48b4-48b7-b962-586870a09d4e)Something: EmbeddedGuidAsKey
}
添加我自己非常简单的洗涤器 verifySettings.ScrubLinesWithReplace(x => x.Replace("ee7f4fa8-48b4-48b7-b962-586870a09d4e", "MyGuid")) 也只替换值中的 Guid,所以它似乎不是内置 Guid 洗涤器的问题,而是我缺少的设置。
有没有办法直接使用 VerifyTests 从属性名称中清除 Guid? 现在,在将其传递给验证者之前,我已经清除了所有 Guid。
【问题讨论】:
标签: verify verify-tests