FluentAssertions:C#单元测试断言库,让测试代码更加直观、易读!
推荐一个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
推荐阅读
Garnet:微软官方基于.Net 8开源缓存系统,可无需任何改动直接替代Redis,而且还更高性能!
CodeMaid:Visual Studio代码自动整理插件!
websocket-sharp:.NET平台上的WebSocket客户端与服务器开源库
FluentAssertions:C#单元测试断言库,让测试代码更加直观、易读!的更多相关文章
- .NET单元测试的艺术-3.测试代码
开篇:上一篇我们学习单元测试和核心技术:存根.模拟对象和隔离框架,它们是我们进行高质量单元测试的技术基础.本篇会集中在管理和组织单元测试的技术,以及如何确保在真实项目中进行高质量的单元测试. 系列目录 ...
- Node入门教程(13)第十一章:mocha单元测试+should断言库+istanbul覆盖率测试+art-template
声明:以下为老马的全栈视频教程的笔记,如果需要了解详情,请直接配合视频学习.视频全部免费,视频地址:https://ke.qq.com/course/294595?tuin=1eb4a0a4 node ...
- iOS开发:XCTest单元测试(附上一个单例的测试代码)
测试驱动开发并不是一个很新鲜的概念了.在我最开始学习程序编写时,最喜欢干的事情就是编写一段代码,然后运行观察结果是否正确.我所学习第一门语言是c语言,用的最多的是在算法设计上,那时候最常做的事情就是编 ...
- 利用Python中的mock库对Python代码进行模拟测试
这篇文章主要介绍了利用Python中的mock库对Python代码进行模拟测试,mock库自从Python3.3依赖成为了Python的内置库,本文也等于介绍了该库的用法,需要的朋友可以参考下 ...
- Dlib库中实现正脸人脸关键点(landmark)检测的测试代码
Dlib库中提供了正脸人脸关键点检测的接口,这里参考dlib/examples/face_landmark_detection_ex.cpp中的代码,通过调用Dlib中的接口,实现正脸人脸关键点检测的 ...
- Dlib库中实现正脸人脸检测的测试代码
Dlib库中提供了正脸人脸检测的接口,这里参考dlib/examples/face_detection_ex.cpp中的代码,通过调用Dlib中的接口,实现正脸人脸检测的测试代码,测试代码如下: #i ...
- python__标准库 : 测试代码运行时间(timeit)
用 timeit.Timer.timeit() 方法来测试代码的运行时间: from timeit import Timer def t1(): li = [] ): li.append(i) def ...
- Google C++单元测试框架GoogleTest---值参数化测试
值参数化测试允许您使用不同的参数测试代码,而无需编写同一测试的多个副本. 假设您为代码编写测试,然后意识到您的代码受到布尔参数的影响. TEST(MyCodeTest, TestFoo) { // A ...
- C/C++ 开源库及示例代码
C/C++ 开源库及示例代码 Table of Contents 说明 1 综合性的库 2 数据结构 & 算法 2.1 容器 2.1.1 标准容器 2.1.2 Lockfree 的容器 2.1 ...
- 廖雪峰Java8JUnit单元测试-1JUnit简介-1JUnit测试
测试驱动开发(Test Driver Development) 1.使用main()方法测试的缺点: 只能有1个main()方法,不能把测试代码分离 没有打印出测试结果和期望结果,例如expected ...
随机推荐
- Android复习(四)-->权限汇总
官方地址: https://developer.android.google.cn/reference/android/Manifest.permission#public-constructors ...
- 5.15 相约上海!2021 年度首届云原生 Meetup | KubeSphere & Friends
时至今日,Kubernetes 虽然变成了云原生这套系统化方法论和开源技术的核心一环,但已经无法独立存在,而是与云原生生态中所有的技术形态息息相关.为了将云原生生态中的各个技术形态结合起来,帮助企业最 ...
- 云原生周刊 | 人类、机器人与 Kubernetes
近日 Grafana 官网发表了一篇博客介绍了 2022 年比较有意思.脑洞大开的一些 Grafana 使用案例,比如监控特斯拉 Model 3 的充电状态.OTA 更新状况等等. 海事技术供应商 R ...
- ToDesk云电脑游戏数量?高性能显卡云桌面
玩游戏最怕遇到电脑配置跟不上,操作卡成狗不说,画面还一卡卡的,游戏体验极差. 最近被人安利了ToDesk的云电脑,可能是刚推出的,配置价格都很能打,浅用了一波拿来打APEX和荒野大镖客,体验有点惊喜到 ...
- CTF-CRYPTO-RSA
CTF-CRYPTO-RSA 只是个人理解,可能有不正确的地方,具体RSA算法参考:http://8.146.200.37:4100/crypto/asymmetric/rsa 1.RSA算法概述 R ...
- 十四个Python Web框架Hello Wold示例
1.Dganjo 新建一个django项目,HelloWorld mkdir django cd django django-admin startproject HelloWorld #新建项目 c ...
- 鸿蒙开发Hvigor任务简介
编译构建工具DevEco Hvigor(以下简称Hvigor)是一款基于TS实现的构建任务编排工具,主要提供任务管理机制,包括任务注册编排.工程模型管理.配置管理等关键能力,提供专用于构建和测试应用的 ...
- VLAN技术
VLAN是虚拟局域网的缩写,它是一种将网络设备(如交换机.路由器等)分割成多个虚拟网络的技术.每个VLAN都是一个独立的广播域,使得可以在同一物理网络上创建多个逻辑网络,从而提高网络的安全性和灵活性. ...
- vue前端分页多条件搜索
vue前端分页多条件搜索 fliterData() { if (this.query_syscode || this.query_version || this.query_group || Stri ...
- 使用SpringSecurity3实现RBAC权限管理
1. What? 什么是权限管理? 具体可参见百度:http://baike.baidu.com/view/2108713.htm 名词备注: 数据级权限:百科内的权限管理一文解释的比较不错,但其中的 ...