.net 我的单元测试之路

2 篇文章 0 订阅

     在单元测试上,我走了很多的弯路,我写这篇文章,希望其他的还没有找到单元测试的小伙伴能够了解一下单元测试,并且知道怎样使用,不用像我当初那样在走很多不必要的弯路。

      大学毕业后,我进入的是一个小型的创业公司,也没得什么人来带自己,全靠自己胡乱生长,那个时候写项目,写完后就运行程序,然后到页面中看正确不正确,然后修改,再调试等,测试的成本很大,有时候运行出来感觉可以了,但是用户一用就会出现各种问题,那个时候就越来越感觉到测试的重要性,但是公司小,并没有专门的测试人员,或许说自己就是测试人员,自己写代码自己测试。我就想给自己的代码弄一个测试,那个时候我知道有单元测试这么一回事,但是并不知道怎么用。然后在网上查.net怎样使用单元测试,发现有很多的教使用单元测试的资料。也就跟着学了一些基础的单元测试使用方法

1:对需要测试的方法创建单元测试  

        

创建成功后:

  

然后就是Assert的各种使用了。这么用了一段时间,发现这样用并不是很好用啊,因为我其实只想看看我这样写代码对没对,有没有返回我想要的结果。并不需要进行一次比较,而且我还需要连接数据库。当我再测试方法中调用连接数据库的方法的时候,就会出错,告诉我无法连接数据库。

 后来才知道原来我的连接数据库语句配置在web.config中的,但是运行测试的时候是无法读取在web项目中的web.cofig的。读取的测试项目的配置文件,App.config. 只需要把web.config复制到测试项目中,修改名称为App.config即可

运行成功后,我需要看得到我运行的结果,用Console.WriteLine()可以查看输出结果

运行成功后点击下面的“输出”

        

到了这一步,我基本上就可以为我写的方法添加测试了,进一步保证我的代码的正确率。   

但在不久后,我又遇到了一个问题。我在给我的Ajax中添加测试的时候,无法测试成功,因为它需要HttpContext对象。

这个地方需要一个HttpContext对象,而且我还要传递参数过去。首先我想到的是模拟一个httpContext对象,到时找到了很多的方法,但是看起来很复杂,不是需要使用插件,就是太难理解了(原谅我不够聪明而且比较嫌麻烦),后来一想,其实可以创建一个这个对象不就可以了。于是在网上找到了创建一个HttpContext对象的方法

         

这样传递了httpContext对象后,就可以直接测试了,而且能够获取到参数值

后来对方法进行了一下封装,方便调用

调用的时候

 这些就是我现知道的单元测试的知识了。分享给大家,希望大家不要嫌弃。如果有更好的方法希望大佬赐教。

最后说一句:最近在使用mvc对控制器中的方法进行测试的时候,发现上面的这种创建HttpContext对象好像没得效果。感觉还是需要模拟器模拟一个。

 

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值