一、初识单元测试
刚开始接触这个名词时,还以为是老师要给我们测试,后来经老师解释,才知道此测试不是彼测试。所以我上网百度了一下单元测试的含义(如下):
单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,
如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。
单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。
二、开始测试
在了解了要做的事是什么之后,接下来就是进行学习操作的时候了。我就在网上看一些关于单元测试的基本简单教程。
然后我使用了myeclipse里自带的JUnit4包进行测试的,并没有另外去下其他的插件。
在测试代码中,Assert类起到十分重要的作用。
下面列举一些Assert的常用方法:
1.assertEquals([String message],expected,actual):
用来查看对象中存的值是否是期待的值,与字符串比较中使用的equals()方法类似;
2.assertFalse([String messag],boolean condition)
assertTrue([String messag],boolean condition):
用来查看变量是是否为false或true,如果assertFalse()查看的变量的值是false则
测试成功,如果是true则失败,assertTrue()与之相反;
3.assertSame([String message],expected,actual)
assertNotSame([Spring message],expected,actual):
用来比较两个对象的引用是否相等和不相等,类似于通过“==”和“!=”比较两个对象;(与equal有区别)
4.assertNull([String message],java.lang.Object object)
assertNotNull([String message],java.lang.Object object):
用来查看对象是否为空和不为空;
5.fail([String message]):
意为失败,用来抛出错误。fail()一旦被执行,会立即中止测试,java虚拟机不再执行任
何别的代码,并且会抛出 junit.framework.AssertionFailedError错误!
接下来就是对复利计算的一些单元测试
复利计算求总额
1.输入正确的值:本金10000,年限3,;利率0.05
测试结果:
在设置了允许误差1.0情况下,测试正确
然后就是对输入数据进行一个限制(本金,年限,利率都不能少于等于0);
以上源代码就是进一步对输入范围进行控制
如果输入错误,那么就会报错;
例如把本金输入-1
测试结果如下:
另外还有单利计算、年限、利率等测试,和上面的复利计算求总额的思想大同小异,也是通过测试,一步步地完善自己的代码,
所以我在此就不一一列举了。
以下是其他测试的一些结果:
测试内容 | 测试输入 | 预期结果 | 运行结果 |
复利计算 | (本金,年限,年利率) | 终值 | |
输入正数 | 10000,3,0.05 | true | √ |
输入负数 | -1,3.0.05 | false | √ |
年限计算 | (本金,本利,年利率) | 终值 | |
输入正数 | 10000,20000,0.05 | true | √ |
输入负数 | 10000,-20000,0.05 | false | √ |
单利计算 | (本金,年限,年利率) | 终值 | |
输入正数 | 10000,5,0.05 | true | √ |
输入负数 | -1,5,0.05 | false | √ |
...... |
通过这个单元测试,我从中学到了很多新的知识,了解到一个好的程序是经过怎样的步骤逐步完善起来的,我认为虽然单元测试是比较耗费时间的,
但它的价值却是不可忽略的,毕竟一个好的程序需要很好的容错性。初次接触单元测试,还是有很多不懂的地方,一切才刚刚开始,以后仍需大量
的努力去提升自己。