仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 678|回复: 8
打印 上一主题 下一主题

[学习教程] 来一篇关于NET的asp.net单位测试及检察代码掩盖率具体示例

[复制链接]
山那边是海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:21:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
另外,小型软件代码重用价值低,没有必要跨平台;大型软件,有严格的规划、部署,不可以随意跨平台。单位测试作为程序员一样平常事情中的主要部分,却被年夜多半的程序职员疏忽失落了,乃至良多写了多年月码的老程序猿都不晓得怎样创立一个复杂的单位测试。我本人也是比来才发明单位测试的主要性,然后入手下手试着做一些复杂的测试,这一章中我们入手下手做一个复杂的简元测试吧。

在vs2008中创立单位测试


一,翻开vs2008,创立一个类库VSTSDemo。
由于我在进修的时分用的就是vs2008,别的版本的vs,办法应当差未几,人人本人研讨吧:)

删撤除默许天生的类,然后创立一个LogonInfo类,然后我们在这个类中写一个很复杂的猎取最年夜值的办法GetMax(int[]aryNum).办法的代码以下:
namespaceVSTSDemo
{
publicclassLogonInfo
{
publicintGetMax(int[]aryNum)
{
if(aryNum==null||aryNum.Length==0)
{
return-1;
}

if(aryNum.Length==1)
{
returnaryNum[0];
}

intn=aryNum[0];
for(inti=1;i<aryNum.Length;i++)
{
if(aryNum>n)
{
n=aryNum;
}
}

returnn;
}
}
}

这个办法就不注释了,很复杂,应当一看就分明。它的功效就是从aryNum数组中找出最年夜的一个值。

二,创立单位测试项目
将鼠标挪动到GetMax类名下面,右键,选择选项,创立单位测试,以下图:


这时候候会弹出一个"创立单位测试"的操纵框,我们间接点断定,然后输出新项目标称号LogonInfoTest,以下图:


断定完成后,vs会主动天生LogonInfoTest测试项目与一个SolutionItems文件夹,且主动在LogonInfoTest项面前目今天生一个LogonInfoTest.cs文件,以下图:



注重:下面代码中的Assert.Inconclusive("考证此测试办法的准确性")是我手动正文失落了。这行会默许天生,但没有甚么用。假如不想默许天生,能够在创立单位测试时点击设置,把默许天生这一行代码的选项勾失落。

三,入手下手测试办法LogonInfo
在入手下手测试前,我们必要改写一下GetMaxTest()办法
///<summary>
///GetMax的测试
///</summary>
[TestMethod()]
publicvoidGetMaxTest()
{
LogonInfotarget=newLogonInfo();
int[]aryNum=newint[]{1,3,4};//这里为aryNum赋一个初始值
intexpected=4;//这里设置是GetMax办法预期值,从下面的初始值及GetMax办法的本意我们晓得预期值应当是4
intactual;
actual=target.GetMax(aryNum);
Assert.AreEqual(expected,actual);//这里判别expected与actual是不是相称,假如相称,则判断测试乐成,反之失利
//Assert.Inconclusive("考证此测试办法的准确性。");
}

注重Assert.AreEqual(expected,actual)这一行代码,Assert.AreEqua是测试expected和actual是否是相称,相称就以为乐成,不相称就以为失利。一样用来判断的办法共有以下几个:
Assert.AreEqual()测试指定的值是不是相称,假如相称,则测试经由过程;
Assert.Inconclusive()暗示一个未考证的测试;
Assert.IsTrue()测试指定的前提是不是为True,假如为True,则测试经由过程;
Assert.IsFalse()测试指定的前提是不是为False,假如为False,则测试经由过程;
Assert.IsNull()测试指定的工具是不是为空援用,假如为空,则测试经由过程;
Assert.IsNotNull()测试指定的工具是不是为非空,假如不为空,则测试经由过程;

代码改写完成后,我们翻开vs菜单上的"测试"->"窗口"->"测试视图",会呈现测试视图窗口,以下图:


在测试视图窗口中列出了一切我们创立的测试办法,鼠标挪动到GetMaxTest办法下面,在右键当选择"运转选定内容",测试就入手下手啦。测试的了局会显现在"测试了局"的窗口中,以下图:


从下面的了局我们就能够晓得办法测试是不是经由过程了。然后我们也能够改动测试办法GetMaxTest()中的初始值与预期值,再次运转测试办法检察测试了局。

代码掩盖率


代码掩盖率指的就是在运转测试案例时,案例运转时所实行的代码局限水平。代码掩盖率越高,申明案例越好。被测代码中每一个可实行语句都被实行到了,测试出来的了局也就是越不乱。好比,在单位测试中,代码掩盖率必需到达80%或90%,如许,就请求我们好好编写测试案例了。

那末要怎样检察代码的掩盖率呢?我们双击文件夹SolutionItems下的LocalTestRun.testrunconfig文件。在弹出来的窗口中来设置要检察代码掩盖率的办法,以下图:


运转测试办法后,我们翻开vs菜单上的"测试"->"窗口"->"代码掩盖率了局"窗口,在窗口中双击要检察代码掩盖率的办法,以下图:


掩盖率的了局以下图:


个中橙色的代码暗示部分实行了,白色代码暗示没有实行,蓝色代码暗示全体实行了。固然,这个色彩能够在"工具"->"选项"->"字体和色彩"中自界说。一般的指的.net就是跟java相对的那种,主要是做企业级应用的。你如果想学这个,主要就是学C#和数据库。(ASP.NET好像很重要的,应该也要学的,ASP.NET上好像可以结合VB和C#等多种语言,但是微软主推C#)
再现理想 该用户已被删除
沙发
发表于 2015-1-18 13:21:27 | 只看该作者
同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。
柔情似水 该用户已被删除
板凳
发表于 2015-1-26 21:19:27 | 只看该作者
碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。
因胸联盟 该用户已被删除
地板
发表于 2015-2-4 21:50:09 | 只看该作者
当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。
飘飘悠悠 该用户已被删除
5#
发表于 2015-2-10 20:54:59 | 只看该作者
Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。
第二个灵魂 该用户已被删除
6#
发表于 2015-3-1 15:33:48 | 只看该作者
能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。
兰色精灵 该用户已被删除
7#
发表于 2015-3-10 20:45:43 | 只看该作者
ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。
精灵巫婆 该用户已被删除
8#
发表于 2015-3-17 11:03:37 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
不帅 该用户已被删除
9#
发表于 2015-3-24 08:37:34 | 只看该作者
虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 13:27

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表