ASP.NET CORE 中用单元测试测试控制器

以前用ASP.NET CORE作的项目html

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

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

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

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

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

 

测试经过了,而后再按网上找到的文章app

https://www.cnblogs.com/yubaolee/p/DotNetCoreUnitTest.htmlasp.net

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

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

相关文章
相关标签/搜索