关闭

走进单元测试三:实战单元测试

发表于:2013-8-08 11:02

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:wangyong0921    来源:51Testing软件测试网采编

  通过上面步骤的操作,就会进入选择文件的界面,按照提示即可完成,当然前提你的数据文件要准备好,完成之后会出现如下代码:

/// <summary>
///Add 的测试
///</summary>
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV",
"|DataDirectory|\\number.csv",
"number#csv",
DataAccessMethod.Sequential),  //这个是连接字符串,你也可以手动写,不要按照上面步骤操作,当然要写对单词和“注意文件的路径”!
DeploymentItem("MyTest\\number.csv"),
TestMethod()]
public void AddTest1()
{
Program target = new Program();
int numberOne = Convert.ToInt32(this.testContextInstance.DataRow["One"]);  //获取数据!
int numberTwo = Convert.ToInt32(this.testContextInstance.DataRow["Two"]); ;
int expected = Convert.ToInt32(this.testContextInstance.DataRow["Except"]);
int actual = target.Add(numberOne, numberTwo);
Assert.AreEqual(expected, actual);
}

  点击运行你的测试,程序会通过你设置的路径去文件里面一行一行的读取数据,然后验证数据,如果其中有一行数据报错,那么整个测试也就是失败了,所以保证数据的正确性很重要!

  注意:CSV默认会以Excel的方式打开,但是它里面的数据摆放有一个规则,就是以逗号的形式呈现,所以我还是建议大家使用记事本来添加数据!

  ②使用XML作为数据文件

  其实使用方法跟上面的一样,尤其注意的是你XML文件里面数据的格式!

<table> //一定要设置根节点,如果不设置在文件选择的时候会报错!
<my>
<price>1</price>
<number>1</number>
<total>1</total>
</my>
<my>
<price>2</price>
<number>2</number>
<total>4</total>
</table>

  注意:怎么来获取数据呢?Convert.ToInt32(this.testContextInstance.DataRow["price"]) 通过这样的方式来获取数据,还有在选择文件时,要确认是否选中了一个数据源文件,这个不要疏忽了!

  ③使用数据库作为数据文件很简单,配置一下连接字符串,设置一下路径就好了,在此就不讲解了!

  7.单元测试的利器 → “Mole”技术

  首先想感谢下项目组的Tian Mi大哥是他把这项技术带给我们的,谢谢他的无私奉献!

  “Mole”文件的下载地址:http://www.kuaipan.cn/index.php?ac=file&oid=29568238492847207

  ①应用环境:

  所属模块依赖于系统的其它模块,依赖于系统的一些配置环境,还有就是调用第三方接口或服务等等的场景!

  在这样的场景下我们的测试是不能直接调用第三方接口或服务的,所以我们要制造一个虚拟的环境,当我们去调用接口时,Mole技术会拦截我们调用的方法,从而转向我们自己制造的虚拟环境,那么就不会直接调用第三方接口和服务了!

  ②基本的操作流程不讲解了,如果你看了http://www.cnblogs.com/hwade/archive/2010/11/26/Moles.html这篇文章就明白了,我就将一些在写测试时遇到的几个小问题!

  ③如果“Moles”结束后,项目编译的时候报错,具体的错误我也不怎么知道了,但是我在网上搜了很久才找到答案的!

  步骤:点击你的Moles文件,你会发现他是个XML配置文件,修改它的属性就好了,如:

<Moles  xmlns=http://schemas.microsoft.com/moles/2010/  DisableCache="true" >  //增加一个DisableCache = "true"这个属性,如果遇到问题,基本都是这个问题,这样解决就Ok了!
<Assembly Name="Foundation.FinanceManagement.BusinessService"  />
</Moles>

54/5<12345>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号