FluentAssertions:C#单元测试断言库,让测试代码更加直观、易读!

news/2025/3/10 21:09:36/文章来源:https://www.cnblogs.com/chingho/p/18635356

推荐一个C#开源库,用于单元测试中的断言,它提供了一系列的扩展方法,使得单元测试的断言看起来更加自然流畅。

01 项目简介

FluentAssertions 是一个基于 .NET 的断言库,它提供了一种链式调用的方式来编写断言语句。支持框架.NET Framework 4.7、.NET Core 2.1、.NET Core 3.0、.NET 6、.NET Standard 2.0/2.1,支持单元测试框架MSTest2、NUnit3、XUnit2、MSpec和NSpec3。

支持扩展方法分类:

图片

02 使用方法

1、更接近于自然语言

传统写法

Assert.AreEqual(5, result);

使用 FluentAssertions:

result.Should().Be(5);

2、多个断言条件,一个语句中连续进行多个断言

string actual = "ABCDEFGHI";
actual.Should().StartWith("AB").And.EndWith("HI").And.Contain("EF").And.HaveLength(9);

3、除了基本的等值断言外,FluentAssertions 还提供了丰富的断言方法,用于验证各种不同类型的数据和场景。例如,你可以使用 BeGreaterThan 方法来验证一个数值是否大于另一个数值:

int largerNumber = 10;  
int smallerNumber = 5;  
largerNumber.Should().BeGreaterThan(smallerNumber);

03 项目地址

https://github.com/fluentassertions/fluentassertions

- End -

更多开源项目: https://github.com/bianchenglequ/NetCodeTop

推荐阅读

ImageSharp:高性能跨平台.NET开源图形库

Garnet:微软官方基于.Net 8开源缓存系统,可无需任何改动直接替代Redis,而且还更高性能!

一套UI精美、控件丰富、多主题的WinForm开源界面库

CodeMaid:Visual Studio代码自动整理插件!

websocket-sharp:.NET平台上的WebSocket客户端与服务器开源库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/859782.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记一次 .NET某工业视觉软件 崩溃分析

一:背景 1. 讲故事 前两天给训练营里的一位学员分析了一个dump,学员因为弄了一整天也没找到祸根,被我一下子弄出来了,极度想看看我是怎么分析的?由于在微信上不能一言两语表尽,干脆写一篇文章出来详细的讲讲吧,哈哈,训练营里的学员得有求必应哈。。。话不多说,我们一起…

ToDesk虚拟屏调整屏幕分辨率,显卡欺骗器、锁屏宝

ToDesk虚拟屏功能相信很多使用这款软件的小伙伴们或多或少都有听说或尝试过,它的作用可多了,既能充当多任务框扩充器、同时又能充当显卡欺骗器,并且还能作为高级隐私屏、锁屏宝,可谓是一款相当实用的神器! 当然,好用有用固然重要,但是用的更加舒服顺手也关键,以下小编就…

React Setup

useState是React的一个函数,返回一个数组。 useEffect(function(), []),别忘记第二个参数是空数组。 1. A first look at REACT以前网页由服务端渲染-> SPA Web Applications数据的同步更新很重要!React是什么?JavaScript ReviewArray Methods arr = [3,1,6,2,9], arr.so…

EV付费怎么办?ToDesk无线扩展屏免费使用

随着数字化办公、远程教育、多屏互动等需求的日益加增,扩展屏逐渐成为了提升工作效率及丰富学习、娱乐体验的重要工具。然而,市场上的扩展屏工具五花八门,并非每款都适用性强且好用无门槛。例如传统的EV扩展屏软件,就存在着一些明显的不足之处,其中的部分高级功能在实测中…

权限对象:B_BUP_PCPT

权限对象:B_BUP_PCPT 事务代码: BUPA_PRE_EOP CVP_PRE_EOP(需要SFW5激活SAP Information Lifecycle Management,事务码IRMPOL) 权限字段:ACTVT 05: 锁定供应商/客户 95:解锁供应商/客户本文来自博客园,作者:观兴,转载请注明原文链接:https://www.cnblogs.com/guanxi…

java8--方法--String--格式化--format

1.程序: package InputTest;import java.util.Scanner;public class InputTest021227 {public static void main(String[] args) { // English();Chiness();}public static void English(){Scanner in = new Scanner(System.in);System.out.print("What is your n…

GaussDB数据库中逻辑对象关系简析

初次接触openGauss或GaussDB数据库的逻辑对象,被其中的表空间、数据库、schema和用户之间的关系,以及授权管理困惑住了,与熟悉的MySQL数据库的逻辑对象又有明显的不同。本文旨在简要梳理下GaussDB数据库逻辑对象之间的关系,以加深理解。 1、GaussDB数据库逻辑对象 1.1 表空…

GaussDB数据库的备份与恢复

​ 1.逻辑备份-gs_dump gs_dump是一款用于导出数据库相关信息的工具,支持导出完整一致的数据库对象(数据库、模式、表、视图等)数据,同时不影响用户对数据库的正常访问。 备份sql语句gs_dump是openGauss用于导出数据库相关信息的工具,用户可以自定义导出一个数据库或其中的…

UAC简介及对比

什么是UAC/UAD UAC是USB Audio Class的缩写,有时也叫UAD,UAD是USB Audio Device的缩写。 UAC/UAD定义了在USB规范下实现音频的设备的实现和控制功能,这些功能包括不仅音频数字部分的,也包括模拟部分。这些音频数据(模拟和数字)和用于直接控制音频环境的功能,如音量和音调…

k8s 1.23 安装kubesphere 3.4

参考 : https://blog.csdn.net/weixin_43810267/article/details/1333477361、下载kubesphere的yamlwget https://github.com/kubesphere/ks-installer/releases/download/v3.4.0/kubesphere-installer.yaml wget https://github.com/kubesphere/ks-installer/releases/downlo…

【linux合集】单机部署clickhouse--ubuntu环境

clickhouse单机部署--ubuntu部署 导入clickhouse密钥操作 (ClickHouse(大数据分析DBMS)的软件包由其开发人员使用公钥进行签名,我们需要在我们的系统上使用它。这是因为只有我们的系统才能验证我们得到的软件包,它们来自源代码,因为它们是由其开发人员发布的。并且没有被…

欧拉OpenEuler安装xxl-job-admin

1. 安装xxl-job-admin unzip xxl-job-admin.zip ls mv xxl-job-admin-2.4.0/ /home cd /home/ xxl-job-admin-2.4.0/ cd bin/ chmod +x *.sh2. 配置 cd ../conf/ vim application.properties 3.启动 cd ../bin/ sh startup.sh 4. 配置防火墙 firewall-cmd --permanent --add-po…