c# - (什么时候)使用 FluentAssertions 是个好主意?

标签 c# .net unit-testing xunit fluent-assertions

<分区>

我正在重写一个 C# .NET 项目,目前正在计划我将如何进行测试。

阅读完所有内容后,我将安装XUnit 框架(这是第一次——我对 MSTest 更有经验)。现在我想知道我是否应该将它与 FluentAssertions(我以前也从未使用过)结合起来,或者编写纯 XUnit 测试。

乍一看,FluentAssertions 听起来既 Nerd 又时髦,但我不确定它是否真的会引导我编写可读性最好的代码,以及它在复杂测试中的扩展性如何。

因此,我正在寻找您的经验和论据。 [何时](做 | 会)使用 FluentAssertions?我很好奇。

最佳答案

Fluent 主要是关于可读性和便利性。
如果您要编写多个单元测试,我建议您使用它。 我最近有一个案例,我将对象“a”和“b”映射到对象“c”上,我想通过单元测试验证映射器。
因此,我创建了一个“expectedObject”,其中包含对象“c”在映射后应包含的所有属性。
由于我没有编写比较器,也不需要比较器,因此比较对象“c”和“expectedObject”以断言它们包含相同的数据会非常麻烦。所讨论的对象包含许多属性,而这些属性又具有许多属性。

但是用 Fluent 我可以简单地写

c.Should().BeEquivalentTo(expectedObject);

这比一连串的 Assert.AreEqual() 更容易阅读,而且在这种情况下,更重要的是,编写起来也更快。

关于c# - (什么时候)使用 FluentAssertions 是个好主意?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55495026/

相关文章:

c# - Hangfire 作业插入对应用程序 API 性能的影响

c# - 单点触控饼图

c# - Autofac 多次注册组件

c# - 使用 JSON 反序列化方法时 VS 2013 崩溃

python - 导入错误 : cannot import name wraps on Mac

c# - 在 C# 中使用 System.Math.Pow() 方法查找数字的立方根

c# - 我如何有条件地为 Mono 和 Microsoft .NET 编译我的 C#?

c# - 使用标准 .NET Framework 的类似 AOP 属性的基本实现

javascript - Angular 2测试无法加载自定义包

phpunit静态调用方法中的方法