ASP.NET CORE 中用单元测试测试控制器
之前用ASP.NET CORE做的项目
加了一个新功能,数据库加了个字段balabala....
更新到服务器上,新功能测试正常,然后就没管了.....
今天客户说网站有BUG,某个页面打开后出错了,以前是正常的,上去看了下,是控制器里的代码出异常了.....
就想到加了新功能后除了本地运行每个链接都点一下手工测试有没有错误的,能不能全由程序来测试,于是想到了单元测试
靠搜索补了一下单元测试的基础知识,按网上的示例跟着做,先试着写个测试DAL增删改方法的,
测试通过了,然后再按网上找到的文章
https://www.cnblogs.com/yubaolee/p/DotNetCoreUnitTest.html
写测试控制器的,结果报错:
看上面的错误以为是那个appsetting.json没有COPY到单元测试项目中,copy过去后设置为始终复制,结果还是不行,后来试着在nuget里搜索安装 microsoft.aspnetcore.server.kestrel, 安装后再运行,然后又是另一个错误,同样的是‘系统找不到指定的文件“,只是换了个包名 microsoft.aspnetcore.xxxxxx
上网又搜索了一下,看到别人说直接nuget搜索microsoft.aspnetcore.all即可,但是我试着做了,结果还是不行,原因我猜也许是因为之前的项目是用CORE 2.1来做的,而nuget里的microsoft.aspnetcore.all只有2.2版本的,
没办法,只能每在nuget里安装一个包后运行一次测试,一个包一个包的装上,最后在装了N个包后,再测试终于测试成功通过了!!!不容易啊!!!!-_-!!!!!!!
以上写的测试也许不对,没有 assert什么的,但好像对我来说行了,我只需要测试控制器出不出异常就好了。。
2018年12月15日记录
在另一个项目里加入单元测试,也是NET CORE 2.1的,结果照搬上面的代码,结果在getservice那里<>不出来,没有 这个扩展方法 。晕。。比较了一下二个项目的引用的包,没发现有什么 不同,搞不明白另一个项目里新建的单元测试 怎么不能用扩展方法,都是nunit的项目 。。。
最后不用扩展方法了,用(homcontroller)webhost.host.service.getservices(typeof(homecontroller))
弄了一早上,asp.net core 单元测试 里加上session的。。
https://stackoverflow.com/questions/42269770/how-to-mock-session-variables-in-asp-net-core-unit-testing-project?answertab=active#tab-top
ASP.NET CORE 中用单元测试测试控制器的更多相关文章
- 【asp.net core 系列】2 控制器与路由的恩怨情仇
0. 前言 在上一篇文章中,我们初步介绍了asp.net core,以及如何创建一个mvc项目.从这一篇开始,我将为大家展示asp.net core 的各种内容,并且尝试带领大家来挖掘其中的内在逻辑. ...
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
IT咨询顾问:一次吐血的项目救火 年后的一个合作公司上线了一个子业务系统,对接公司内部的单点系统.我收到该公司的技术咨询:项目启动后没有规律的突然无法登录了,重新启动后,登录一断时间后又无法重新登 ...
- 使用 xUnit 编写 ASP.NET Core WebAPI单元测试
本文使用xUnit对ASP.NET Core WebAPI做单元测试,使用HttpClient的同步和异步请求,下面详细介绍xUnit的使用过程: 一.创建示例项目 模板为我们自动创建了一个Value ...
- 如何在ASP.NET Core Web API测试中使用Postman
使用Postman进行手动测试 如果您是开发人员,测试人员或管理人员,则在构建和使用应用程序时,有时了解各种API方法可能是一个挑战. 使用带有.NET Core的Postman为您的Web API生 ...
- 在ASP.NET Core中用HttpClient(二)——发送POST, PUT和DELETE请求
在上一篇文章中,我们已经学习了如何在ASP.NET Core中使用HttpClient从Web API获取数据.此外,我们还学习了如何使用GetAsync方法和HttpRequestMessage类发 ...
- 在ASP.NET Core中用HttpClient(一)——获取数据和内容
在本文中,我们将学习如何在ASP.NET Core中集成和使用HttpClient.在学习不同HttpClient功能的同时使用Web API的资源.如何从Web API获取数据,以及如何直接使用Ht ...
- asp.net core Session的测试使用心得及注意事项
sp.net-core中Session是以中间件的形式注册使用的.不比asp.net中的使用,直接使用Session就行. 首先在.net-core框架中注入Session中间件,首先在Configu ...
- asp.net core 2.1 将控制器抽离到类库中
startup.cs的ConfigureServices中添加: public void ConfigureServices(IServiceCollection services) { var ma ...
- 在ASP.NET Core中用HttpClient(三)——发送HTTP PATCH请求
在前面的两篇文章中,我们讨论了很多关于使用HttpClient进行CRUD操作的基础知识.如果你已经读过它们,你就知道如何使用HttpClient从API中获取数据,并使用HttpClient发送PO ...
随机推荐
- git命令详解( 七 )
此为git命令详解的第七篇 这章我们可以来逐渐揭开 git push.fetch 和 pull 的神秘面纱了.我们会逐个介绍这几个命令,它们在理念上是非常相似的. git push的参数 git ...
- springmvc controller动态设置content-type
springmvc RequestMappingHandlerAdapter#invokeHandlerMethod 通过ServletInvocableHandlerMethod#invokeAn ...
- shell几种字符串加密解密的方法
第一种:[ Python 与 Bash Shell 的结合 ]这个命令会让你输入一个字符串,然后会再输出一串加密了的数字. 加密代码[照直输入]:python -c 'print reduce(lam ...
- linux 硬盘分区与格式化挂载
1. 硬件设备与文件名的对应关系(详见linux系统管理P297)1) 掌握在Linux系统中,每个设备都被当初一个文件来对待.2) 掌握各种设备在Linux中的文件名 2. 硬盘的结构及硬盘分区(详 ...
- 通过ipmitool找回遗忘的iDrac地址
Background: 在使用Dell服务器的过程中,如果发生一下情况:可以进入系统,但是忘记iDrac卡的地址,在系统的某个Linux下,可以使用ipmitool这个工具来get一下硬件的信息,从而 ...
- C#常用字符串函数
Compare 比较字符串的内容,考虑文化背景(场所),确定某些字符是否相等 CompareOrdinal 与Compare一样,但不考虑文化背景 Format 格式化包含各种值的字符串和如何格式化每 ...
- Kotlin基础(一)Kotlin快速入门
Kotlin快速入门 一.函数 /* * 1.函数可以定义在文件最外层,不需要把它放在类中 * 2.可以省略结尾分号 * */ fun main(args: Array<String>) ...
- setdest 和cbrgen工具的使用,出现的错误
在路径 ~/ns-2.34/indep-utils/cmu-scen-gen/setdest下运行 ./setdest -n 250 -p 0.0 -M 10.0 -t 10 -x 1500 -y 1 ...
- [Python]网络爬虫( 连载:大牛汪海 )
汪海个人博客:http://blog.callmewhy.com/ Python爬虫专栏,汪海专栏 Python爬虫入门教程 简单的介绍如何使用Python的相关模块如urllib2来实现网络爬虫的基 ...
- Marked Ancestor [AOJ2170] [并查集]
题意: 有一个树,有些节点染色,每次有两种操作,第一,统计该节点到离它最近的染色父亲结点的的号码(Q),第二,为某一个节点染色(M),求第一种操作和. 输入: 输入由多个数据集组成.每个数据集都有以下 ...