在看本文前,作者是使用eclipse+myEclipse开发平台,并且在eclipse上安装了Junit插件,关于插件的安装与使用,这里不详细叙述,具体操作可以上网找。很多的。
这里介绍单元测试与
EasyMock
的简单理解和用法。
进行单元测试可以使代码的测试细化到方法粒子,对于每个功能都进行单元测试,可以使自己的代码更安全,同时产出高质量的代码,不多说,现在看看单元测试
Junit
的用法。
这里我写了一个
Sample
类,作为下面测试的代码,代码如下:
package
sample;
/*
* @author five00
*/
public
class
Sample {
String
result
;
public
void
compWord(String m){
if
(m ==
null
){
result
=
null
;
}
else
if
(m.equals(
"hello"
)){
result
=
new
String(
"friend"
);
}
else
if
(m.equals(
"go out"
)){
result
=
new
String(
"enemy"
);
}
}
}
|
Sample
有一个
compWord
方法,测试的目的就是要对字符串‘
m
’输入不同的数据,然后观察结果
result
的值。这里,
result
会有三个值
---friend
、
enemy
以及
null
。
文章太长。。。下一篇写测试类
看一下测试类JunitSample,代码如下:
package
sample;
import
junit.framework.TestCase;
/*
* @author five00
*/
public
class
JUnitSample
extends
TestCase{
Sample
sample
=
new
Sample();
public
void
testCompWord(){
sample
.compWord(
"hello"
);
assertEquals(
"
结果异常!
"
,
"friend"
,
sample
.
result
);
sample
.compWord(
"go out"
);
assertEquals(
"
结果异常!
"
,
"enemy"
,
sample
.
result
);
sample
.compWord(
null
);
assertNull(
"
结果异常!
result
不为空
"
,
sample
.
result
);
sample
.compWord(
"aaa"
);
assertNull(
"
结果异常!
result
不为空
"
,
sample
.
result
);
}
}
|
编写单元测试需要注意两点:
1.
单元测试类要继承
TestCase
接口
2.
单元测试的测试方法(这里的测试方法是
testCompWord()
)不能有方法参数,就是括号里不能有参数。
单元测试还有一些规范,例如将测试方法以
test
开头,但是这不是硬性的,主要还是习惯问题。
看一下上面的代码,主要测试
Sample
类的
compWord
方法,在测试方法中总共调用了
compWord
方法四次,每次传入的参数均不相同,其中的
assertXXX
方法就是
Junit
提供的结果比较方法。
因为做单元测试时我们会知道传入某些数据后结果会是如何,比如某个方法调用后,一些参数具体值是什么或者是否为空之类的,
assertXXX
方法的意义就在于,它提供了很多比较,供我们选择,使我们能够很快的比较结果,这里主要用了两个方法,
assertEquals
与
assertNull
,这两个方法的意思分别是比较两个参数是否值相等与当前参数是否为空,其中第一个字符串参数是测试失败时输出的结果。
上面的代码对于
m
值的四种情况全部列出,分别是
hello
、
go out
、
null
与其它值的情况,做测试的时候,我们也应该尽可能地将所用情况考虑进来,考虑越多,测试的效果越好。
上面的
Junit
测试使用起来很简单,如果看书的话,可能还要看很多概念,但是相信本文可以使您更快上手。
如果还有问题,请联系本人。
QQ
:
71877848
百度空间:
http://hi.baidu.com/five00