2 回答

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

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊
Fluent Assertions 是一個(gè) Nuget 包,我在我的項(xiàng)目中一直使用了大約 6 年。拿起并開(kāi)始使用非常簡(jiǎn)單。大多數(shù)人可以在 5-10 分鐘內(nèi)掌握它,這將使閱讀單元測(cè)試更容易一些。Fluent Assertions 是免費(fèi)的,因此試用它真的不會(huì)犯規(guī)。我想我現(xiàn)在已經(jīng)向 10 多個(gè)團(tuán)隊(duì)介紹了 Fluent Assertions,到目前為止還沒(méi)有人抱怨過(guò)。大多數(shù)團(tuán)隊(duì)不使用它的最大原因就是缺乏接觸它的機(jī)會(huì)。使用標(biāo)準(zhǔn)方法,單元測(cè)試可能類似于以下內(nèi)容:
[TestMethod]
public void Example_test()
{
var actual = PerformLogic();
var expected = true;
Assert.AreEqual(expected, actual);
}
此測(cè)試沒(méi)有任何問(wèn)題,但您需要花一兩秒鐘來(lái)了解發(fā)生了什么。相反,使用 FLuent Assertations,您可以像這樣編寫(xiě)相同的測(cè)試:
[TestMethod]
public void Example_test()
{
var result = PerformLogic();
result.Should().BeTrue();
}
希望您能看到第二個(gè)示例的閱讀時(shí)間要少得多,因?yàn)樗x起來(lái)更像是一個(gè)句子而不是 Assert 語(yǔ)句。從根本上說(shuō),這就是 Fluent Assertions 的全部,與 Assert 語(yǔ)句相比,許多擴(kuò)展方法可以更輕松地閱讀單元測(cè)試。我希望你能理解為什么它如此容易上手。您需要做的就是在結(jié)果變量中獲取測(cè)試結(jié)果,使用 Should() 努力,然后使用 Fluent Assertions 其他擴(kuò)展來(lái)測(cè)試您的用例。簡(jiǎn)單的!
http://www.jondjones.com/c-sharp-bootcamp/tdd/fluent-assertions/what-is-fluent-assertions-and-should-i-be-using-it
- 2 回答
- 0 關(guān)注
- 141 瀏覽
添加回答
舉報(bào)