NSubstitute.Analyzers检测NSubstitute用法冲突
2024-10-06 20:39:01
NSubstitute是一个.Net环境使用的,简洁,语法友好的Mock库。语法简洁的缺点是有一些失败的用法很难察觉和检测。比如试图mock一个非虚拟成员-NSubstitute不能看到这些成员所以不能沟通sub.Received().NonVirtualCall()的问题。多亏了现在有Roslyn编译器。我们现在有了能检测这些问题的方法。
使用用法:
使用Nuget安装NSubstitute.Analyzers.CSharp库。
Install-Package NSubstitute.Analyzers.CSharp
能检测的特性列表如下:
NS1000
在类的非virtual成员上使用
Returns()
ReturnsForAnyArgs()
ReturnsNull()
ReturnsNullForAnyArgs()
Throws()
ThrowsForAnyArgs()等特性
NS1001
在类的非virtual成员上使用
Received()
ReceivedWithAnyArgs()
DidNotReceive()
DidNotReceiveWithAnyArgs()
等特性
NS1002
在类的非virtual成员上使用
When()
WhenForAnyArgs()
等特性
NS2000
使用Substitute.ForPartsOf 创建接口或者代理。 解决方法是使用Substitute.For代替Substitute.ForPartsOf
NS2001
使用NSubstitute mock没有暴露公共或者保护构造方法的类。
NS2002
使用NSubstitute mock没有暴露无参构造方法的类。
NS2003
使用NSubstitute mock 内部类。
NS2004
使用NSubstitute mock的时候传递了错误的构造参数。
NS2005
一次替代多个类型
NS2006
mock接口的时候传递了参数。 只要将参数移除就可以解决这个问题
参考:github目录
最新文章
- KVM 基本命令
- Django1.7+JQuery+Ajax集成小例子
- 我读汤姆大叔的深入理解js(二)
- web magic 小结
- 链表的C++实现——创建-插入-删除-输出-清空
- ADO.Net 数据库访问技术
- C++(MFC)
- bzoj 2301 [HAOI2011]Problem b(莫比乌斯反演)
- C#编程中的66个好习惯,你有多少个?(转)
- android中分割线的实现
- 【可视化】Echarts3图层
- JQuery操作option的添加、删除、取值
- 网络 [HNOI2016]
- Asp.Net 合并图片(二维码和其他图片合并)
- jdbc数据访问技术
- django通用分页封装
- pom.xml文件报MavenArchiver错误 org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.MavenProject, org.apache.maven.archiver.MavenArchiveConfiguration)
- 【第四章】Shell 条件测试表达式
- 为什么选择Angular 2?
- 【JMeter4.0学习(九)】之定时器
热门文章
- Thread setUncaughtExceptionHandler
- Java8-Stream-No.10
- 2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018) A. Altruistic Amphibians (DP)
- Codeforces Round #591 (Div. 2, based on Technocup 2020 Elimination Round 1) B. Strings Equalization
- 最大的矩形(CCF)
- 洛谷P2622 关灯问题II
- Linux 网络通信命令之 netstat
- 使用docker部署mysql主从复制集群
- python 查看源代码
- uni-app 的更新及碰到的问题