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