NUnit的使用(3)——更多的测试用例
2008-07-27 10:15
183 查看
实际的测试用例并不只一两个,根据单元测试策略,可以使用等价类、边界值等测试用例分类法进行划分。
仍以比较list列表中最大整数值为例,我们可以对测试数据进行如下等价类划分:
第一类:数可以是整数、小数。在本例中,如果list列表若含有小数应该报错并人为抛出异常。
第二类:数可以分为正、负、零。
第三类:数可以分为一位数、两位数、三位数……
第四类:list列表中可以有重复的值,重复值不应该影响最大数的判定
第五类:list列表中的值顺序不应该影响最大数的判定
第六类:list列表中可能不含任何整数,即为空。
测试数据必须讨论边界值,因为实践证明边界处是bug的多发地
第一类:数为0,-1,1,Int.MaxValue-1,Int.MinValue+1
第二类:list列表中有零个数、一个数
根据上述分析,我们可以得到许多测试用例,下面选取其中几个对LargestNumber.cs测试。
启动调试,点击run得到的测试结果如下:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/xiaomizaza/435933/o_6.bmp)
测试没有通过!这是因为程序没有对list列表为空作判断。当list.Length为0时,应该抛出异常。我们在LargestNumber.cs中加上如下代码,再次运行nunit.exe,测试通过。
仍以比较list列表中最大整数值为例,我们可以对测试数据进行如下等价类划分:
第一类:数可以是整数、小数。在本例中,如果list列表若含有小数应该报错并人为抛出异常。
第二类:数可以分为正、负、零。
第三类:数可以分为一位数、两位数、三位数……
第四类:list列表中可以有重复的值,重复值不应该影响最大数的判定
第五类:list列表中的值顺序不应该影响最大数的判定
第六类:list列表中可能不含任何整数,即为空。
测试数据必须讨论边界值,因为实践证明边界处是bug的多发地
第一类:数为0,-1,1,Int.MaxValue-1,Int.MinValue+1
第二类:list列表中有零个数、一个数
根据上述分析,我们可以得到许多测试用例,下面选取其中几个对LargestNumber.cs测试。
using System; using System.Collections.Generic; using System.Text; using NUnit.Framework; namespace CompareMaxNumber { [TestFixture] class TestLargestNumber { [Test] public void TestLargestSequense() { Assert.AreEqual(9,LargestNumber.MaxNumber(new int[] {8, 7, 9})); Assert.AreEqual(9, LargestNumber.MaxNumber(new int[] { 7, 8, 9 })); Assert.AreEqual(9, LargestNumber.MaxNumber(new int[] { 9, 8, 7 })); } [Test] public void TestLargestnegative() { Assert.AreEqual(-7, LargestNumber.MaxNumber(new int[] { -9, -7, -8 })); } [Test,ExpectedException(typeof(ArgumentException))] public void TestLargestSmallNumber() { Assert.AreEqual(1, LargestNumber.MaxNumber(new int[] { 1 })); LargestNumber.MaxNumber(new int[] { }); Assert.AreEqual(0, LargestNumber.MaxNumber(new int[] { 0 })); } [Test] public void TestLargestRepetition() { Assert.AreEqual(9, LargestNumber.MaxNumber(new int[] { 9, 3, 5, 9 })); } } }[code]
启动调试,点击run得到的测试结果如下:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/xiaomizaza/435933/o_6.bmp)
测试没有通过!这是因为程序没有对list列表为空作判断。当list.Length为0时,应该抛出异常。我们在LargestNumber.cs中加上如下代码,再次运行nunit.exe,测试通过。
if (list.Length == 0) { throw new ArgumentException("Empty list"); }[code]
相关文章推荐
- Parasoft C++test使用教程:关于测试用例(二)
- Android 测试用例的使用
- 使用junit测试用例
- 使用Nunit对使用NHibernate的类进行测试出现的问题解决
- 如何在CodeGear BDS 2007中创建和使用测试用例--DUNIT
- 使用 Contest 分析测试用例的代码覆盖率
- 学会使用函数编程,以及设计比较完备的测试用例完成对小程序的测试
- mvn测试用例使用surefire插件,jvm参数未载入的原因
- 如何使用思维导图更高效的设计测试用例?(转)
- 使用NModel自动生成测试用例
- TestLink 测试/测试用例使用
- PICT使用教程(设计测试用例工具)
- Python使用TestLoader、TestSuite、HTMLTestRunner组织测试用例实例
- 使用组合改进软件测试用例的生成
- 使用Phoenix Framework自动化测试工具开放的接口手动创建用例
- SQL存储过程测试——使用BCP工具导入测试用例数据
- 手工测试用例就是自动化测试脚本——使用ruby 1.9新特性进行自动化脚本的编写
- ThinkPHP学习-路由的使用测试用例源码
- 如何使用Nunit进行测试(Visual Studio 2017 comminity)
- 艾伟_转载:单元测试之道(使用NUnit)