2016-08-16 46 views
1

我剛剛更新了我的舊項目以使用版本4.13.0,並且有很多異常驗證與ComparisonMode.Substring,但ComparisonMode.Substring不存在於最新版本中。我發現this解釋說:FluentAssertions在比較異常消息時失敗

由於這樣的結果,我決定,爲2.1版,ComparisonMode是過時的,對異常信息的任何斷言被視爲不區分大小寫的通配符匹配。

但現在我得到失敗的測試負荷:

預期異常消息相當於匹配「 參數的值‘PeriodEnd’必須大於01 .01.0001' 」,但「參數PeriodEnd的值 必須大於'01 .01.0001'。

字符串我斷言與

價值論證的 'PeriodEnd' 必須大於01 .01.0001'

,預計說法

值的信號'期末'必須大於'01 .01.0001'。值爲'01 .01.0001'。

參數名:PeriodEnd

但是從它似乎在此之前,它應該是一個通配符,我從斷言字符串是一個的子果然是「打補丁筆記」,那麼爲什麼它失敗了嗎?

回答

2

您仍然需要將通配符添加到WithMessage的調用中,就像您在ComparisonMode.Wildcard仍然存在時一樣。理由解釋如下:this post

如果您需要驗證某個字符串值或異常消息是否符合預期,請不要驗證確切的消息。使用通配符驗證相關的特定部分,以驗證行爲是否符合預期。如果您決定改進所涉及的文本,它將會從無法完成的測試中節省。

+0

有沒有關於不同通配符的信息? – Mech0z

+0

查看https://github.com/dennisdoomen/FluentAssertions/wiki#exceptions。但總之,只支持'?'和'*'。 –