存在的问题:

1 目前的方法如果要测试,要在main方法上调用;

2 目前的测试结果要人工对比。

解决:

使用Junit单元测试框架:

一、搭建环境:

导入junit.jar包(junit4)

 

二、写测试类:一般一个类对应一个测试类。

1,测试类与被测试类最好是放到同一个包中(可以是不同的源文件夹)

2,测试类的名字为被测试类的名字加Test后缀。

 

三:写测试方法:一般一个方法对应一个单元测试方法。

1,测试方法的名字为test前缀加被测试方法的名字,如testAddPerson()。

2,单元测试方法上面要加上@Test注解(org.junit.Test)!

3,单元测试@Test下方法不能有形式参数,也不能有返回值(返回void)!测试的方法不能是静态的方法。

 

四、测试方法的基本使用:

1,可以单独执行一个测试方法,也可以一次执行所有的、一个包的、一个类中所有的测试方法。

2,执行完后,显示绿色表示测试成功;显示红色表示测试失败(抛异常后会测试失败)。

 ------------------------------------------------------------------------------------------------------------

 Assert断言工具类

 

其中有一些静态的工具方法(不符合期望就抛异常):

 

assertTrue(...) 参数的值应是true

assertFalse(...) 参数的值应是false  

 

assertNull(...) 应是null值

assertNotNull(...) 应是非null的值

 

assertSame(...) 使用==比较的结果为true(表示同一个对象)

AssertNotSame(...) 使用==比较的结果为false

 

assertEquals(...) 两个对象equals()方法比较结果为true

 --------------------------------------------------------------------------------------------------------

用于准备环境、清理环境的方法

@Test

表示单元测试方法。

 

@Before

所修饰的方法应是非static的(且没有参数,返回值为void)。

表示这个方法会在本类中的每个单元测试方法之前都执行一次。

 

@After

所修饰的方法应是非static的(且没有参数,返回值为void)。

表示这个方法会在本类中的每个单元测试方法之后都执行一次。

 

 

@BeforeClass

所修饰的方法应是static的(且没有参数,返回值为void)。

表示这个方法会在本类中的所有单元测试方法之前执行,只执行一次。

 

@AfterClass

所修饰的方法应是static的(且没有参数,返回值为void)。

表示这个方法会在本类中的所有单元测试方法之后执行,只执行一次。