![](/img/trans.png)
[英]Fluent Assertions: XElement .Should().HaveValueContaining?
[英]Fluent Assertions Should().Should().BeEquivalentTo ignores excluded member
我正在集成測試中創建兩個相同類型的對象,但是試圖排除在對象創建時生成的自動增量成員。
我成功排除了RecordId和Number屬性,但是對Id屬性的等效性測試失敗。 RecordId和number屬性是從抽象類繼承的,但Id的不同之處在於,它是從抽象類繼承的抽象屬性,然后將其重寫。
Id屬性是抽象字符串屬性,並且是只讀的。
//CreateJob creates indentical jobs, but with autoincremented id, number and recordid
Job job1 = CreateJob();
Job job2 = CreateJob();
job1.Should().BeEquivalentTo(job2, config => config
.Excluding(o => o.RecordId)
.Excluding(o => o.Id)
.Excluding(o => o.Number)
);
消息:預期成員ID為“ 45”,但“ 46”在“ 6”(索引1)附近有所不同。
使用配置:-使用聲明的類型和成員
- 按值比較枚舉
- 排除成員root.RecordId
- 排除成員root.Id
- 排除成員root.Number
- 按名稱匹配成員(或拋出)
- 沒有自動轉換。
- 嚴格遵守字節數組中的項目順序
我也嘗試使用WithTracing()選項運行,但是它沒有提供有關該屬性的信息。
我已經閱讀了文檔,但沒有發現任何指示不能排除抽象或虛擬屬性的信息,我錯了嗎?
我已經在5.5.0和5.5.3版上嘗試過,結果相同。
編輯:
我已經檢查並再次檢查了該類或其繼承的類均不等於。
我看到了這一點,我的對象被Equals(object obj)
覆蓋了,但是我沒想到BeEquivalentTo
函數會受到影響。
我以為BeEquivalentTo
會通過對象圖來代替?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.