亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

(什么時候)使用 FluentAssertions 是個好主意?

(什么時候)使用 FluentAssertions 是個好主意?

C#
MMMHUHU 2022-11-22 16:49:13
我正在重寫一個C# .NET 項目,目前正在計劃我將如何進行測試。在閱讀完所有內容后,我將安裝XUnit 框架(這是第一次——我對 MSTest 更有經驗)?,F在我想知道我是否應該將它與FluentAssertions(我以前也從未使用過)結合起來,或者編寫純 XUnit 測試。乍一看,FluentAssertions 聽起來既書呆子又時尚,但我不確定它是否真的會讓我編寫出可讀性最好的代碼,以及它在復雜測試中的擴展性如何。因此,我正在尋找您的經驗和論據。[何時](做 | 會)使用 FluentAssertions?我很好奇。
查看完整描述

2 回答

?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

流利主要是關于可讀性和便利性。

如果您要編寫多個單元測試,我建議您使用它。我最近遇到了將對象“a”和“b”映射到對象“c”的情況,我想通過單元測試來驗證映射器。
因此,我創建了一個“expectedObject”,其中包含對象“c”在映射后應包含的所有屬性。
由于我沒有編寫比較器,也不需要比較器,因此比較對象“c”和“expectedObject”以斷言它們包含相同的數據會非常麻煩。所討論的對象包含許多屬性,而這些屬性又具有許多屬性。

但是用流利的我可以簡單地寫

c.Should().BeEquivalentTo(expectedObject);

這比一連串的內容更容易閱讀Assert.AreEqual(),在這種情況下,更重要的是,寫起來也快得多。


查看完整回答
反對 回復 2022-11-22
?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

Fluent Assertions 是一個 Nuget 包,我在我的項目中一直使用了大約 6 年。拿起并開始使用非常簡單。大多數人可以在 5-10 分鐘內掌握它,這將使閱讀單元測試更容易一些。Fluent Assertions 是免費的,因此試用它真的不會犯規。我想我現在已經向 10 多個團隊介紹了 Fluent Assertions,到目前為止還沒有人抱怨過。大多數團隊不使用它的最大原因就是缺乏接觸它的機會。使用標準方法,單元測試可能類似于以下內容:


[TestMethod]  

public void Example_test()  

{  

    var actual = PerformLogic();

    var expected = true;  

    Assert.AreEqual(expected, actual);  

}  

此測試沒有任何問題,但您需要花一兩秒鐘來了解發生了什么。相反,使用 FLuent Assertations,您可以像這樣編寫相同的測試:


[TestMethod]  

public void Example_test()  

{  

    var result = PerformLogic();

    result.Should().BeTrue();  

}  

希望您能看到第二個示例的閱讀時間要少得多,因為它讀起來更像是一個句子而不是 Assert 語句。從根本上說,這就是 Fluent Assertions 的全部,與 Assert 語句相比,許多擴展方法可以更輕松地閱讀單元測試。我希望你能理解為什么它如此容易上手。您需要做的就是在結果變量中獲取測試結果,使用 Should() 努力,然后使用 Fluent Assertions 其他擴展來測試您的用例。簡單的!


http://www.jondjones.com/c-sharp-bootcamp/tdd/fluent-assertions/what-is-fluent-assertions-and-should-i-be-using-it


查看完整回答
反對 回復 2022-11-22
  • 2 回答
  • 0 關注
  • 143 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號