Nunit 比较异常消息时FluentAssertions失败

Nunit 比较异常消息时FluentAssertions失败,nunit,fluent-assertions,Nunit,Fluent Assertions,我刚刚更新了我的旧项目以使用版本4.13.0,并且使用ComparisonMode.Substring进行了大量异常验证,但是ComparisonMode.Substring在最新版本中不存在。我发现这可以解释: 因此,我决定从2.1版开始,ComparisonMode已经过时,任何针对异常消息的断言都被视为不区分大小写的通配符匹配 但现在我得到了大量失败的测试: 期望异常消息与“的值”匹配 参数'PeriodEnd'必须大于'01.01.0001',但必须大于'Value' 参数“Period

我刚刚更新了我的旧项目以使用版本4.13.0,并且使用
ComparisonMode.Substring
进行了大量异常验证,但是
ComparisonMode.Substring
在最新版本中不存在。我发现这可以解释:

因此,我决定从2.1版开始,ComparisonMode已经过时,任何针对异常消息的断言都被视为不区分大小写的通配符匹配

但现在我得到了大量失败的测试:

期望异常消息与“的值”匹配 参数'PeriodEnd'必须大于'01.01.0001',但必须大于'Value' 参数“PeriodEnd”的值必须大于“01.01.0001”。值为 “01.01.0001”

参数名称:PeriodEnd“没有

我用以断言的字符串

参数“PeriodEnd”的值必须大于“01.01.0001”

它所期望的

参数“PeriodEnd”的值必须大于“01.01.0001”。值为“01.01.0001”

参数名称:PeriodEnd


但是从以前的“补丁注释”来看,它似乎应该是一个通配符,我从中断言的字符串是它真正的子字符串,那么为什么它失败了呢?

您仍然需要将通配符添加到调用
WithMessage
,就像您在
ComparisonMode.wildcard
仍然存在时所做的那样。理由解释如下:


如果需要验证某个字符串值或异常消息是否符合预期,请不要验证确切的消息。使用通配符验证与验证行为是否符合预期相关的特定部分。如果您决定细化所涉及的文本,它将避免意外失败的测试。

是否有一个地方包含不同通配符的信息?请参阅。但简而言之,只支持
*