.NET Core 单元测试
应用程序测试的类型很多,包括集成测试,Web 测试,负载测试等。在最底层的是单元测试,此测试可以测试单个软件组件或方法。单元测试一般只测试开发人员的代码,不应该测试基础结构普、问题,如数据库,文件系统或网络资源等。单元测试可以使用测试驱动开发(TDD)编写,也可以将它们添加到现有代码已确认其正确性。
在编写单元测试时,注意不要随意地在基础结构上引入依赖项。这些依赖项往往使测试更慢,更脆弱,因此应该将其保留用于继承测试。可以通过遵循显示依赖性原则,使用依赖注入从框架请求依赖关系,以此来避免应用程序代码中地这些隐藏依赖关系。
1.xUnit.net 单元测试
创建一个 .net core 类库项目,创建一个用于测试的方法:
- public class UnitTest
- {
- public bool IsNum(string obj)
- {
- var i = ;
- return int.TryParse(obj, out i);
- }
- }
然后添加 xUnit 测试项目:
创建测试成功和测试失败的方法:
- public class UnitTest1
- {
- private UnitTest myTest;
- public UnitTest1()
- {
- myTest = new UnitTest();
- }
- [Fact]
- public void TestSuccess()
- {
- Assert.True(myTest.IsNum(""));
- }
- [Fact]
- public void TestFail()
- {
- Assert.True(myTest.IsNum("q"));
- }
- }
[Fact] 特性将方法表示为单个测试。
在 VS 工具栏中选择 测试-- 运行 -- 所有测试,显示一个成功,一个失败:
也可以使用 [Theory] 特性执行相同的代码,但具有不同输入参数的测试,使用 [InlineData] 特性来指定这些输入的参数:
- [Theory]
- [InlineData("-1")]
- [InlineData("")]
- public void Test(string str)
- {
- Assert.True(myTest.IsNum(str));
- }
2.MSTest 单元测试
xUnit 使跨平台的良好选择,在面向 Windows 时,MSTest 是一个更好的选择,因为是官方提供的支持。
创建 MSTest 测试项目,同样添加测试成功和失败的方法,在方法上添加 [TestMethod] 特性,并在类上添加特性 [TestClass]:
- [TestClass]
- public class UnitTest1
- {
- private UnitTest myTest;
- public UnitTest1()
- {
- myTest = new UnitTest();
- }
- [TestMethod]
- public void TestSuccess()
- {
- Assert.IsTrue(myTest.IsNum(""));
- }
- [TestMethod]
- public void TestFail()
- {
- Assert.IsTrue(myTest.IsNum("q"));
- }
- }
.NET Core 单元测试的更多相关文章
- .NET Core 单元测试 MSTest
.NET Core 单元测试 MSTest ,MSTest Framework 已经支持 .NET Core RC2 / ASP.NET Core RC2. 之前都是使用 xUnit.net ,现在 ...
- 【转】.NET(C#):浅谈程序集清单资源和RESX资源 关于单元测试的思考--Asp.Net Core单元测试最佳实践 封装自己的dapper lambda扩展-设计篇 编写自己的dapper lambda扩展-使用篇 正确理解CAP定理 Quartz.NET的使用(附源码) 整理自己的.net工具库 GC的前世与今生 Visual Studio Package 插件开发之自动生
[转].NET(C#):浅谈程序集清单资源和RESX资源 目录 程序集清单资源 RESX资源文件 使用ResourceReader和ResourceSet解析二进制资源文件 使用ResourceM ...
- Asp.Net Core 单元测试正确姿势
背景 ASP.NET Core 支持依赖关系注入 (DI) 软件设计模式,并且默认注入了很多服务,具体可以参考 官方文档, 相信只要使用过依赖注入框架的同学,都会对此有不同深入的理解,在此无需赘言. ...
- .Net Core单元测试规范
.Net Core单元测试规范 一. 前言 为了有效提升代码质量,保证DevOps的顺利进行.将全面开始采用单元测试进行覆盖,届时单元测试将完全纳入 到完整的持续构建生命周期中做为第一道质量把控的门槛 ...
- 关于单元测试的思考--Asp.Net Core单元测试最佳实践
在我们码字过程中,单元测试是必不可少的.但在从业过程中,很多开发者却对单元测试望而却步.有些时候并不是不想写,而是常常会碰到下面这些问题,让开发者放下了码字的脚步: 这个类初始数据太麻烦,你看:new ...
- 使用 xUnit 编写 ASP.NET Core 单元测试
还记得 .NET Framework 的 ASP.NET WebForm 吗?那个年代如果要在 Web 层做单元测试简直就是灾难啊..NET Core 吸取教训,在设计上考虑到了可测试性,就连 ASP ...
- .NET Core单元测试覆盖率统计coverlet配置和使用
https://segmentfault.com/a/1190000017569492 需要使用: 使用 Moq 测试.NET Core 应用 https://www.cnblogs.com/c ...
- .net core 单元测试小记
创建项目,选择.net core的类库(class library) 修改project.json的配置 { "version": "1.0.0-*", &qu ...
- Moq 在.net Core 单元测试中的使用
Moq,主要用来伪造接口的实现类,实现方法,属性 moq The most popular and friendly mocking framework for .NET What? Moq (pro ...
随机推荐
- python之unittest框架实现接口测试实例
python之unittest框架实现接口测试实例 接口测试的方法有很多种,具体到工具有postman,jmeter,fiddler等,但是工具的局限性是测试数据的组织较差,接口的返回工具的判断有限, ...
- 分布式Streaming Data Processing - Samza
现在的主流的互联网应用越来越依赖streaming data来提供用户一些interesting statistics insights.以linkedin为例,最近90天有多少人看过你的link ...
- http面试笔试常考知识点(一)
1.什么是http HTTP是客户端和服务器端请求和应答的标准.通过使用Web浏览器.网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求.(我们称这个客户端)叫用 ...
- sql注入------基于时间延迟benchmark函数注入脚本
#author:windy_2import requests urlx = 'http://127.0.0.1/?id= 1 and if((substr((select database()),' ...
- liunx软件安装与网络管理和远程访问
三.软件安装1.RPM包管理器进行软件安装 语法:rpm[选项][软件包] -i 安装一个以前从来未安装过的软件包 -v 将安装过程打印在屏幕上 -h 以字符“#”显示安装进度条 rpm -q[软件包 ...
- rabbitMQ_Publish/Subscribe(三)
发布/订阅 生产者发布信息,多个订阅者可以同时接收到信息. 转发器 现在是时候在RabbitMQ中引入完整的消息传递模式了. 让我们快速了解我们在以前的教程中介绍的内容: 生产者是一个发送消息的应用程 ...
- PID算法资料【视频+PDF介绍】
最近一直有网友看到我的博客后,加我好友,问我能不能给发一些PID的资料,今天找了一些资料放到百度网盘上,给大家下载: 视频资料 链接:https://pan.baidu.com/s/12_IlLgBI ...
- H3C模拟器实验之网络地址转换
网络拓扑图 NOTE:各个设备的基本配置在拓扑图上已经标明(需要注意的是RTB的出接口也需要配置IP,但是使用ping -a 10.1.1.1 202.117.144.1 ping不通,这点不是很理解 ...
- Linux服务部署Yapi项目(安装Node Mongdb Git Nginx等)
Linux服务部署Yapi 一,介绍与需求 1,我的安装环境:CentOS7+Node10.13.0+MongoDB4.0.10. 2,首先安装wget,用于下载node等其他工具 yum insta ...
- IE浏览器主页被篡改为2345,针对一般解决办法无法解决的情况
1.注册表修改 按微软键+R 输入regedit 弹出注册表.HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN 将右侧的Sta ...