用NUnit为.NET程序做测试 ---实战之方便简捷的测试技巧
2009-04-27 12:52
453 查看
下面我们继续通过实例来学习。
新建一个MathCompute类,通过这个类我们要实现的是计算一个数组中最大的项。
新建一个测试类 MathComputeTest
运行NUnit,试试吧。
这样是不是简便了许多呢,而且这样的代码我们还可以重用的……
新建一个MathCompute类,通过这个类我们要实现的是计算一个数组中最大的项。
public class MathCompute { public int Largest(int [] array) { if (array == null || array.Length ==0) { throw new Exception("array参数传入错误!"); } int largestValue = Int32.MinValue; foreach (int arr in array) { if(largestValue < arr) { largestValue = arr; } } return largestValue; } }
新建一个测试类 MathComputeTest
[TestFixture] public class MathComputeTest { }
在这里我们发现测试这样一个方法有很多种情况,
比如:参数数组为0,NULL,数组中全是正数,全是负数,有正数有负数,有重复项,数组长度为零……
这样的话,按照前面的学习我们在这里不是要写很多个测试方法了吗?像这个还好一点情况还不是太多。
如果有N多种情况,写这么多的测试方法都是相似的,每一个测试中我们都要输入不同的数字。
有没有一种简单的方法呢?这里我们的解决方法是将我们要输入的数组写在一个文本文件或者是XML文件中,
让程序来一行行读取,这样如果测试的数值有更改的话,我们只需要把这个文本文件中的值更改一下即可。
这样就可以大大的提高项目测试的效率了吧。
下面我们动手实践吧!
新建一个文本文件(也可以是XML文件)如下:
# 这里是注释 12 2 5 9 8 6 12 -1 -3 -1 -67 -32 -8 23 23 12 5 -9 0 2 2 2 2 2 2 2 1 1
这里的文本文件是按照自己的意思写的,例如上面的文本文件我就自定义了#是注释行,然后一行是一个数组中的项,
其中每一行的第一项我定义为这个数组中期望的最大值,每一行除了第一项的数值全部是要传入的数组中的项目了。
到这里大家就知道接下来应该怎么做了吧。对了,接下来我们在测试类中添加读取此文本文件的方法咯。
[TestFixture] public class MathComputeTest { private MathCompute mc; [TestFixtureSetUp] public void initMath() { mc = new MathCompute(); } [Test] public void testLargest() { //项目生成以后此方法是在项目的BIN目录下面的。所以Dataset.txt的位置如下: StreamReader streamReader = new StreamReader(@"../../DataSet.txt"); string line = null; while ((line = streamReader.ReadLine())!=null) { //如果是以#开头,则此行是自定义的注释行,所有跳过。 if (line.StartsWith("#")) { continue; } string[] takens = line.Split(null); int expectedValue = Int32.Parse(takens[0]); ListarrayList = new List (); //每行的第一个数值是期望的最大值,此处从1开始 for (int i = 1; i < takens.Length;i++) { arrayList.Add(Int32.Parse(takens[i])); } int[] array = arrayList.ToArray(); Assert.AreEqual(expectedValue, mc.Largest(array)); } streamReader.Close(); //关闭流,可别忘记咯。 } }
运行NUnit,试试吧。
这样是不是简便了许多呢,而且这样的代码我们还可以重用的……
相关文章推荐
- 用NUnit为.NET程序做测试 --- 实战
- 用NUnit为.NET程序做测试 --- 常用测试属性之三 Category
- 用NUnit为.NET程序做测试 ---Nunit入门
- 用NUnit为.NET程序做测试---数据库测试之连接测试
- 用NUnit为.NET程序做测试 --- 常用测试属性之一 SetUp TearDown TestFixtureSetUp TestFixtureTearDown
- 用NUnit为.NET程序做测试 --- 常用测试属性之二 Ignore, Explicit
- 用NUnit为.NET程序做测试---数据库测试之二 数据操作测试
- 实战准标准库Boost —— (2)测试Boost配置的Hello World程序
- 渗透测试工具实战技巧合集
- 技巧分享——log4j的配制及测试程序
- 使用NUnit进行DotNet程序测试
- 仿Nunit的【TEST】属性测试一段程序
- 用NUnit自动测试.NET代码
- UFUN设置程序自动卸载方便UG测试
- 第十一讲、jmeter性能测试实战-web程序
- 渗透测试工具实战技巧合集
- 手工注入方法,方便大家测试程序漏洞
- [技巧.Dotnet]简单操作,实现强制.net程序以管理员身份运行。
- NUnit的使用(2)——实际测试过程中,程序代码和测试代码是分开的
- .NET程序调试技巧(一):快速定位异常的一些方法