JUnit4使用入门指南Word文件下载.docx
- 文档编号:22009184
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:15
- 大小:170.23KB
JUnit4使用入门指南Word文件下载.docx
《JUnit4使用入门指南Word文件下载.docx》由会员分享,可在线阅读,更多相关《JUnit4使用入门指南Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。
至于方法内该写些什么,那就要看你需要测试些什么了;
在这里可以测试期望异常和超时时间,如@Test(timeout=100),我们给测试函数设定一个执行时间,超过了这个时间(100毫秒),它们就会被系统强行终止,并且系统还会向你汇报该函数结束的原因是因为超时,这样你就可以发现这些Bug了。
d).
@Ignore:
忽略的测试方法,标注的含义就是“某些方法尚未完成,暂不参与此次测试”;
这样的话测试结果就会提示你有几个测试被忽略,而不是失败。
一旦你完成了相应函数,只需要把@Ignore标注删去,就可以进行正常的测试。
e).
@BeforeClass:
针对所有测试,只执行一次,且必须为staticvoid;
f).
@AfterClass:
g).
@RunWith
@Suite.SuiteClasses
这两个注解一般合在一起用,作为TestSuite类的注解,例如:
@RunWith(Suite.class)
@Suite.SuiteClasses({MyTestCase.class,MyTestCase2.class})
publicclassMyTestsSuite{}
创建一个空类作为测试套件的入口。
使用注解org.junit.runner.RunWith和org.junit.runners.Suite.SuiteClasses修饰这个空类。
将org.junit.runners.Suite作为参数传入注解RunWith,以提示JUnit为此类使用套件运行器执行。
将需要放入此测试套件的测试类组成数组作为注解SuiteClasses的参数,保证这个空类使用public修饰,而且存在公开的不带有任何参数的构造函数。
一个Junit4的单元测试用例执行顺序为:
@BeforeClass–>
@Before–>
@Test–>
@After–>
@AfterClass;
每一个测试方法的调用顺序为:
@Before–>
@After。
下面我们简单创建一个基于Eclipse的JUnit4的测试用例,不用紧张,很简单的,比自己写publicstaticvoidmain(String[]args)还要轻松。
创建一个JavaProject工程,你自己写了一个计算类,计算类的内容如下:
1.package
com.horse;
2.
3.import
com.horse.exp.CalculatorException;
4.
5.public
class
MyCalculator
{
6.
7.
/**
8.
*
两个整数相加,如果相加的值超过了整型的范围,抛出自定义的CalculatorException
9.
@param
x
加数1
10.
y
加数2
11.
@return
相加结果
12.
*/
13.
public
static
int
add(int
x,int
y){
14.
if(x+y
!
=
(long)x
+
(long)y){
15.
throw
new
CalculatorException("
计算结果超出Int值的范围"
);
16.
}
17.
return
x+y;
18.
19.
20.
21.
两个整数相减,如果相减的值超过了整型的范围,抛出自定义的CalculatorException
22.
被减数
23.
减数
24.
相减结果
25.
26.
subtract(int
27.
x-y;
28.
29.
30.
31.
两个整数相乘,如果相乘的值超过了整型的范围,抛出自定义的CalculatorException
32.
被乘数
33.
乘数
34.
相乘结果
35.
36.
multiply(int
37.
x*y;
38.
39.
40.
41.
两个整数相除,如果除数等于0,抛出自定义的CalculatorException
42.
被除数
43.
除数
44.
相除结果
45.
46.
divide(int
47.
x/y;
48.
49.
50.
51.
两个整数相除取模,如果除数等于0,抛出自定义的CalculatorException
52.
53.
54.
相除取模结果
55.
56.
mode(int
57.
x%y;
58.
59.
60.
61.
计算表达式。
<
b>
*未实现<
/b>
62.
String
expression
数学公式表达式,例如:
3*{40/[50-5*(9-1)+10]+4}-2
63.
结果
64.
65.
calcExpression(String
expression){
66.
0;
67.
68.
69.
70.
计算阶乘。
i>
故意写错代码,写成了死循环<
/i>
71.
num
正整数
72.
阶乘结果
73.
74.
factorial(int
num){
75.
for(int
i=0;
i<
num;
){
76.
77.
78.
79.
80.}
这时我们需要写一些测试方法来验证计算方法是否设计正确,然后在JavaBuildPath中把JUnit4添加到Libraries,如图
新建一个测试类:
MyTestCase,这只是一个普通的类,不需要继承任何类,也不需要写main方法,例如:
viewplain
org.junit.*;
5.import
7.import
junit.framework.Assert;
9./**
定义一个JUnit4的测试用例,初步了解JUnit4的使用特性。
p>
下面的例子中全部使用了注解的方式,具体每个注解的含义和使用方式请见下面的用例<
/p>
@author
马涛
2011-6-13
14.public
MyTestCase{
private
i
1;
static{
System.out.println("
MyTestCase被载入内存"
MyTestCase(){
MyTestCase实例化,"
this.hashCode());
@BeforeClass的意思是该被注解的方法将在类被系统载入的时候执行,先于测试用例类构造方法和@Before方法。
br/>
仅被执行一次,方法名不做限制。
该注解在一个类中只可以出现一次,必须声明为public
@BeforeClass
void
setUpBeforeClass(){
初始化测试类"
@AfterClass的意思是所有的测试方法被执行之后再执行,后于@After方法执行。
@AfterClass
setUpAfterClass(){
销毁测试类"
@Before的意思是测试用例类构造方法之后执行,在每个测试方法之前执行<
方法名不做限制,在一个类中可以出现多次,执行顺序不确定,必须声明为public
并且非static
@Before
setUp(){
测试开始"
"
"
@After的意思是测试用例类构造方法之后执行,在每个测试方法之前执行<
并且非static。
如果测试方法被忽略,即@Ignore,或者测试方法运行过程中被强行关闭,如@Test(timeout
xxxx),此时该方法不会被执行,其他情况下该方法都会被执行
@After
tearDown(){
测试结束"
(i++));
测试是否抛出指定的异常<
@Test的意思是该方法是测试方法,启动测试后,系统会自动查找到该方法执行。
如果测试方法中正确的逻辑是:
运行过程中会抛出一个异常(明确知道的异常),这时我们可以使用注解表达式,请见示例。
@Test(expected
CalculatorException.class)
testAdd1(){
MyCalculator.add(Integer.MAX_VALUE,
1);
测试是否抛出指定的异常
80.
testAdd2(){
81.
MyCalculator.add(Integer.MIN_VALUE,
-1);
82.
83.
84.
85.
测试计算结果是否准确
86.
87.
@Test
88.
testAdd3(){
89.
Assert.assertEquals(MyCalculator.add(1,
2),3);
90.
91.
92.
93.
@Ignore:
94.
95.
96.
97.
98.
@Ignore("
方法未实现"
)
99.
100.
testCalc4(){
101.
Assert.assertEquals(MyCalculator.calcExpression("
3*(4+5)"
),27);
102.
103.
104.
105.
@Test(timeout=1000),我们给测试函数设定一个执行时间,<
106.
超过了这个时间(1000毫秒),它们就会被系统强行终止,<
107.
并且系统还会向你汇报该函数结束的原因是因为超时,这样你就可以发现这些Bug了。
108.
109.
110.
@Test(timeout
1000)
111.
testFactorial(){
112.
Assert.assertEquals(MyCalculator.factorial(3),6);
113.
114.}
现在我们可以直接运行了,
测试结果,也会立马能展示出来:
如果测试全部通过,进度条的颜色是绿色,如果有Error或Failure,进度条的颜色是红色,你可以通过标识看每个Error或Failure的具体的异常或错误信息。
5.
如果我们写了很多像上面的测试类,如果我们一个个点击运行来进行测试,这样肯定会影响工作效率,这时我们需要利用JUnit的另一个概念:
Suite,它是JUnit和Suite的容器。
新建一个Suite类:
MyTestsSuite,这只是一个普通的类,不需要继承任何类,也不需要写main方法,也不需要新建任何方法,例如:
org.junit.runner.*;
4.import
org.junit.runners.Suite;
5.
6./**
11.@RunWith(Suite.class)
12.@Suite.SuiteClasses({MyTestCase.class,MyTestCase2.class})
13.public
MyTestsSuite
15.}
同上面运行一样,也会出现你想要的结果,非常直观。
到时候我们可以把所有的Suite和TestCase集合到一个Suite中,然后一把运行,如果出现了绿色进度条,恭喜你,你的代码和功能测试通过;
如果出现了红色进度条,那你就只能乖乖的根据测试结果修改你的代码,直至测试出现绿色进度条。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JUnit4 使用 入门 指南