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 关注
- 66 浏览
添加回答
举报