int r = new Random().Next(0, Source.Count);
Result.Add(Source[r]); Source.RemoveAt(r);
}
Result.Sort();
return Result;
}
算法很好理解。好久前写的,现在翻出来,一眼就看出有问题。不过有点问题正好,看看单元测试能否找出来。
先添一个项目,引用NUnit.Framework,装好NUnit后在Net组件里有,免安装版的在解压后的目录里找。
新建一个Public类用于测试,叫Test,生成随机数的方法的类叫Program。现在无所谓,正式项目里命名得规范一点。Test类加[TestFixture]特性,添加一个Public函数叫做TestGetRandomNum,加上[Test]特性,这样NUnit就能认出这个方法是用于测试的方法了。还给该函数加了一个[Category("GetRandomNum")],因为一个功能可能要写几个函数来测试,这个特性表明方法属于测试GetRandom的方法组。
还有几个常用的特性: [TestFixtureUp] [TestFixtureDown] [TearDown] [Setup] [Ignore] [Explicit],据说以后了解这几个就差不多了。
接着,第一个测试方法该测试什么呢?以偶写代码的一点经验,每个函数都会把参数验证放在前面,参数无效就不往下走了,抛异常什么的该干嘛干嘛,那测试也先从参数测起吧。 现在分析一下参数异常下的输出:若N<1,不管Max值多少都返回空的List;若N>=1,且Max
写一个测试方法用于测试这两种异常输出,应该写两个测试方法好一点。不过刚入手,一个两个就不必分了,写出来就好。代码如下:
测试非正常参数输入 1
public void TestGetRandomNum3() 2
文章来源于领测软件测试网 https://www.ltesting.net/