本文主讲如何在IntelliJ IDEA上如何配置单元测试Junit4以及如何使用。
步骤:
1.下载jar包
2. 项目软件配置
3. 使用实例
一、下载jar包:
3.选择jar包进行下载
其他文件可根据需要自行选择下载。
另外,建议大家在选择junit文件版本时,选择4.10版本或者低版本。因为选择较高版本4.11以上版本不在包含hamcrest。
如果选择较高版本会造成没有hamcrest,造成需要手动导入。junit.jar + hamcrest-core.jar + hamcrest-library.jar或者是:junit-dep.ajr+hancrest-all.jar。但在使用中会有些方法同时出现在了org.hamcrest.Mathchers和org.hamcrest.core中,则在用到时候引入的时候需要注意。
二、项目软件配置
在本地ItelliJ IDEA上创建一个项目。在导航栏选择File->Project Structure->Modules选择’+’
找到自己下载的Junit和hamcrest的jar文件,都添加并应用到项目就OK啦。
之后在这个库目下可以看到添加成功。
三、使用实例
因为有些已经创建了,所以不用在意图片背景不同
-
自己创建Java类,定义方法。
-
新建test文件夹,并将文件夹改为测试根目录。
-
在自己目标方法类内ctrl+shift+T,快捷键呼出新建测试方法
-
完善测试方法,运行测试类。如实是预期结果,右下角会显示各个方法是绿色。
图中assertEquals只是一种判断方法,可自行查阅文档查看其它方法。
四、测试使用相关
- 各种测试中常用的注解
@Test:把该方法标记为测试方法
@Before:该方法在每个测试方法执行前都执行一次
@After:该方法在每个测试方法执行后都执行一次
@BeforeClass:在所有测试方法执行前执行一次,在测试类还没有实例化就已经被加载,所以用static修饰
@AfterClass:在所有测试方法执行后执行一次,在测试类还没有实例化就已经被加载,所以用static修饰
@Ignore:该方法将被忽略不执行 - Junit是单元测试,所以每个测试方法都是一个单独的实例进行测试,各个方法互不影响。
在测试类中,我定义全局变量volatile int i=0;且在每个测个方法都对 i 进行了+1操作,从结果看出 i 并没有变成3。 - 编写测试类的原则:
①测试方法上必须使用@Test进行修饰①测试方法上必须使用@Test进行修饰
②测试方法必须使用public void 进行修饰,不能带任何的参数
③新建一个源代码目录来存放我们的测试代码,即将测试代码和项目业务代码分开
④测试类所在的包名应该和被测试类所在的包名保持一致
⑤测试单元中的每个方法必须可以独立测试,测试方法间不能有任何的依赖
⑥测试类使用Test作为类名的后缀(不是必须)
⑦测试方法使用test作为方法名的前缀(不是必须) - @Test的属性
①测试异常
在测试方法中,我输入一个非法参数,在主方法会抛异常,但此时因为加入(expected = IllegalArgumentException.class),表示就是来判断是否得到异常的测试,因此通过测试。
②超时测试
在主方法内我sleep了3000ms,测试方法内允许2000ms的超时,所以此处这个方法没有通过测试用例。
且从异常看出,sleep被中断了。因此当超出timeout时间后,测试方法中断了主方法的sleep。