MVC 单元测试xUnit初探
对于.NET项目 Web Api的业务逻辑后台开发[特别是做Web Api接口]而言,编写单元测试用例,会极大的减轻代码帮助与运行的方式。然而使用测试框架,相对于自带的,我更加推荐是用xUnit.net这个框架,选择的理由是xUnit.net是NUnit的开发者开发的,扩展性很好。
废话不多说,直接上Demo:
配置与准备工作
第一步:新建单元测试解决方案,然后删除原有的测试文件,新建一个类。这些准备工作做完之后,接下来就是要添加引用啦!
添加NuGet程序包:搜索xUnit-->安装以下两项
1.安装:xUnit.net | 2.安装:xUnit.net[Runner.Visual Studio] |
![]() |
![]() |
编写测试代码
第二步:在刚刚新建的类中添加测试代码,引用using.xUnit,注意,在写测试完成之后必须添加[Fact]
public class DeptServiceTest
{
private readonly DeptService _deptService = new DeptService(); [Fact]
public void GetDeptsTest()
{
var deptId = ""; var depts = _deptService.GetDepts(deptId);
Assert.Equal(false, depts.Count > );//比较期望值与真实值是否一致
}
}
第三步:生成解决方案,调出测试资源管理器,则会看到相应的测试用例
测试用例 | 运行成功 | 运行失败 |
![]() |
![]() |
![]() |
这样就可以知道测试的运行时间,期望值和真实值的比较啦,当然也可以进行调试咯
MVC 单元测试xUnit初探的更多相关文章
- Spring MVC学习总结(1)——Spring MVC单元测试
关于spring MVC单元测试常规的方法则是启动WEB服务器,测试出错 ,停掉WEB 改代码,重启WEB,测试,大量的时间都浪费在WEB服务器的启动上,下面介绍个实用的方法,spring MVC单元 ...
- ASP.NET Core 入门(3)(单元测试Xunit及Shouldly的使用)
一.本篇简单介绍下在ASP.NET Core项目如何使用单元测试,例子是使用VS自带的Xunit来测试Web API接口,加上一款开源的断言工具Shouldly,方便写出更简洁.可读行更好的测试代码. ...
- MVC 单元测试
1.新建mvc项目 添加controller 添加action 或者方法 public ActionResult Index(string str) { ViewBag.Teststr = str; ...
- Asp.net MVC 单元测试 简要笔记
首先要啰嗦几句. 单元测试是TDD的重要实践方法,也是代码质量的一种保证手段.在项目的工程化开发中,研发人员应该尽量保证书写Unit Test,即使不使用TDD. (VS中,我们可以直接使用微软提供的 ...
- MVC单元测试,使用Repository模式、Ninject、Moq
本篇使用Repository设计MVC项目,使用Ninject作为DI容器,借助Moq进行单元测试. 模型和EF上下文 模型很简单: public class Foo { public int Id ...
- Spring MVC -- 单元测试和集成测试
测试在软件开发中的重要性不言而喻.测试的主要目的是尽早发现错误,最好是在代码开发的同时.逻辑上认为,错误发现的越早,修复的成本越低.如果在编程中发现错误,可以立即更改代码:如果软件发布后,客户发现错误 ...
- 单元测试-xUnit总结
xUnit总结 什么是xUnit xUnit.net是针对.NET Framework的免费,开源,以社区为中心的单元测试工具. 自动化测试的优点 可以频繁的进行测试 可以在任何时间进行测试,也可以按 ...
- .Net core--创建一个单元测试xUnit
创建一个xUnit项目 webApi.test 创建之后会有一个默认的[Fact] (测试的标准格式) [Fact] public void TestEqual() { int a = 10, b ...
- ibatis.net MVC 单元测试 错误解决方法
Q1:Unable to load file via resource "SqlMap.config" as resource.Cause : 未能找到文件:"...Te ...
随机推荐
- shell-6.环境变量配置文件
1. 2. 3. 4. 5. 6.
- RxSwift 之变换操作
https://www.aliyun.com/jiaocheng/349821.html RxSwift入坑解读-你所需要知道的各种概念 http://www.open-open.com/lib/vi ...
- 给iview组件select设置默认值
1.首先,给select加一个v-model,如: <Select v-model="exam_name" > <Option v-for="(item ...
- Python 绘图与可视化 matplotlib 填充fill和fill_between
参考链接:https://blog.csdn.net/You_are_my_dream/article/details/53457960 fill()填充函数曲线与坐标轴之间的区域: x = np.l ...
- 【【henuacm2016级暑期训练】动态规划专题 N】Valid Sets
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 给你一棵树. 让你统计其中子树T的数量. 这个子树T要满足最大值和最小值之差小于等于d 树形DP 可以枚举点root为子树的根. 统 ...
- MyBatis学习总结(19)——Mybatis传多个参数(三种解决方案)
据我目前接触到的传多个参数的方案有三种. 第一种方案 DAO层的函数方法 Public User selectUser(String name,String area); 对应的Mapper.xm ...
- DDL表结构修改
*1)创建表 create table 表名( 字段名 类型, .... ); //以现有表复制一个新表 create table j012 as se ...
- ubuntu 14.04服务器上使用nginx搭建wordpress博客详解
过程详解 1.更新apt-get sudo apt-get update 2.安装nginx sudo apt-get install nginx 3.启动nginx sudo service ngi ...
- python多线程编程代码
参考了这篇文章,写的挺好的. http://blog.csdn.net/abcjennifer/article/details/49474897 import time import threadin ...
- android自己定义Application全局变量不能类型转换的问题
今天弄了个全局变量AppContext ,但一直出现例如以下错误,原来继承 Application的得在清单文件声明. java.lang.RuntimeException: Unable to st ...