博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET CORE 中用单元测试测试控制器
阅读量:7236 次
发布时间:2019-06-29

本文共 1133 字,大约阅读时间需要 3 分钟。

之前用ASP.NET CORE做的项目

加了一个新功能,数据库加了个字段balabala....

更新到服务器上,新功能测试正常,然后就没管了.....

今天客户说网站有BUG,某个页面打开后出错了,以前是正常的,上去看了下,是控制器里的代码出异常了.....

就想到加了新功能后除了本地运行每个链接都点一下手工测试有没有错误的,能不能全由程序来测试,于是想到了单元测试

靠搜索补了一下单元测试的基础知识,按网上的示例跟着做,先试着写个测试DAL增删改方法的,

 

测试通过了,然后再按网上找到的文章

写测试控制器的,结果报错:

看上面的错误以为是那个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 

 

转载地址:http://uklfm.baihongyu.com/

你可能感兴趣的文章
DataInputStream和DataOutputStream
查看>>
Database2Sharp重要更新之数据库文档的生成(国庆专辑,祝福我们的祖国)
查看>>
线程的通俗讲解
查看>>
十年之后再看“面向对象”
查看>>
HDFS简介【全面讲解】
查看>>
UVA 11292 Dragon of Loowater(简单贪心)
查看>>
在Web微信应用中使用博客园RSS以及Quartz.NET实现博客文章内容的定期推送功能
查看>>
使用批处理根据项目工程文件生成Nuget包并发布(支持.NET Core)
查看>>
JAVA之旅(三十三)——TCP传输,互相(伤害)传输,复制文件,上传图片,多并发上传,多并发登录...
查看>>
Linux 之归档与压缩
查看>>
擦亮双眼,愚人节彩蛋回顾
查看>>
RDS全量物理备份谁才能读
查看>>
微软专家推荐11个Chrome 插件
查看>>
阿里数据库内核月报:2017年06月
查看>>
【案例】slave_net_timeout 问题一则
查看>>
根据搜索引擎网页去重原理来做seo
查看>>
Linux 系统挂载数据盘
查看>>
bootstrap 非原生checkbox 导致上级tr 点击两次的问题 真tm坑 研究了好久
查看>>
SQL SERVER 中is null 和 is not null 将会导致索引失效吗?
查看>>
CentOS 7.0安装配置LAMP服务器(Apache+PHP+MariaDB)
查看>>