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 ...
随机推荐
- iOS Runtime(一)、objc_class深深的误解
现在网上讲解的objc_class 绝大部分是错的.18年.19年依然很多童鞋写着错误的Runtime文章发到网上,面试的时候基本绝大部分人都说着网上所谓的"正确答案". 一.错误 ...
- html 的实践
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- XamarinAndroid组件教程RecylerView适配器使用动画
XamarinAndroid组件教程RecylerView适配器使用动画 为RecylerView使用RecylerViewAnimators组件中提供的适配器动画,需要使用RecyclerView类 ...
- c++ stod很慢
C++ Convert String to Double Speed (There is also a string-to-int performance test.) A performance b ...
- IE8 兼容性总结
rgba 颜色格式 IE8 不支持 rgba(0, 0, 0, .5) 这种颜色格式. 解决方案:可以利用一张半透明的 png 图片来兼容 IE8. flexbox 根据 caniuse 给出的数据, ...
- Hello 2019 (D~G)
目录 Codeforces 1097 D.Makoto and a Blackboard(DP 期望) E.Egor and an RPG game(思路 LIS Dilworth定理) F.Alex ...
- 简单的C程序
1.最简单的C程序 #include<stdio.h> //预编译处理指令 int main() // 定义主函数 { printf("hello world"); } ...
- C#中#region和#endregion的用法
一.用法说明 #region 说明 Program1 #endregion 二.作用 (1)注释其中间的代码段 (2)折叠中间的代码块(折叠后的说明文字为#region后面的说明)
- 天天爱跑步 [NOIP2016]
Description 小c同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.<天天爱跑步>是一个养成类游戏,需要玩家每天按时上线,完成打卡任务.这个游戏的地图可 ...
- px与rem的换算
在线转化工具: http://www.ofmonkey.com/front/rem rem是相对于根元素<html>,这样就意味着,我们只需要在根元素确定一个参考值,这个参考值设置为多少, ...