2 回答

TA貢獻1802條經驗 獲得超6個贊
流利主要是關于可讀性和便利性。
如果您要編寫多個單元測試,我建議您使用它。我最近遇到了將對象“a”和“b”映射到對象“c”的情況,我想通過單元測試來驗證映射器。
因此,我創建了一個“expectedObject”,其中包含對象“c”在映射后應包含的所有屬性。
由于我沒有編寫比較器,也不需要比較器,因此比較對象“c”和“expectedObject”以斷言它們包含相同的數據會非常麻煩。所討論的對象包含許多屬性,而這些屬性又具有許多屬性。
但是用流利的我可以簡單地寫
c.Should().BeEquivalentTo(expectedObject);
這比一連串的內容更容易閱讀Assert.AreEqual()
,在這種情況下,更重要的是,寫起來也快得多。

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
- 2 回答
- 0 關注
- 143 瀏覽
添加回答
舉報