JUnit4使用要求:
- 测试方法必须使用@Test进行修饰
- 测试方法必须使用public void 进行修饰,不能带任何的参数
- 新建一个源代码目录来存放我们的测试代码
- 测试类的包应该和被测试类保持一致
- 测试单元中的每个方法必须可以独立测试,测试方法不能有任何的依赖
- 测试类使用Test作为类名的后缀
- 测试方法使用test作为方法名的前缀 注意:3,6,7不是必须的
JUnit运行流程:
- @BeforeClass修饰的方法会在所以的方法被调用前被执行,而且该方法是静态的,所以当检测类被加载后接着就会运行它,而且在内存中它只会存在一份实例,它比较适合加载配置文件。
- @AfterClass所修饰的方法通常用来对资源的管理,如关闭数据库的链接。
- @Before和@After会在每个测试方法的前后个执行一次。
Junit中常用的注解
- @Test:将一个普通的方法修饰成为一个测试方法
- @BeforeClass:它会在所以的方法运行前被执行,static修饰
- @AfterClass:它会在所有的方法运行结束后被执行,static修饰
- @Before:会在每一个测试方法被运行前执行一次
- @After:会在每一个测试方法运行后被执行一次
- @Test(expected=XX.class):JUnit异常处理
- @Test(timeout=毫秒)
- @Ignore:所修饰的测试方法会被测试运行器所忽略
- @RunWhith:可以更改测试运行器org.junit.runner.Runner
JUnit测试套件的使用:
编写流程:写一个作为测试套件的入口类,这个类里不包含其他的方法,更改测试运行器Suite.class将要测试的类作为数组传入到Suite.SuiteClasses({})
注意:SuiteTest方法体内必须为空,@Suit.SuiteClasses(class1,class2,….):括号内为一个数组
JUnit参数化设置
- 更改默认的测试运行器为RunWith(Parameterized.class)
- 声明变量来存放预期值和结果值
- 声明一个返回值为Collection的公共静态方法,并使用@Parameters进行修饰
- 为测试类声明一个带有参数的公共构造函数,并在其中位置声明变量赋
JUnit在web项目中的应用
Spring Test整合JUnit4使用总结
1.加入依赖包
使用Spring的测试框架需要加入以下依赖包:
- JUnit 4 (官方下载:https://github.com/KentBeck/junit/downloads)
- Spring Test (Spring框架中的test包)
- Spring 相关其他依赖包(不再赘述了,就是context等包)
2.创建测试源目录和包
在此,推荐创建一个和src平级的源文件目录,因为src内的类都是为日后产品准备的,而此处的类仅仅用于测试。而包的名称可以和src中的目录同名,这样由于在test源目录中,所以不会有冲突,而且名称又一模一样,更方便检索。
3.创建测试类
创建一个测试用的类,推荐名称为 “被测试类名称 + Test”。
测试类应该继承与 AbstractJUnit4SpringContextTests 或 AbstractTransactionalJUnit4SpringContextTests
对于 AbstractJUnit4springcontextTests 和 AbstractTransactionalJUnit4SpringContextTests 类的选择:
如果再你的测试类中,需要用到事务管理(比如要在测试结果出来之后回滚测试内容),就可以使用AbstractTransactionalJUnit4SpringTests类。事务管理的使用方法和正常使用Spring事务管理是一样的。再此需要注意的是,如果想要使用声明式事务管理,即使用AbstractTransactionalJUnitSpringContextTests类,请在applicationContext.xml文件中加入transactionManager bean:
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
如果没有添加上述bean,将会抛出NoSuchBeanDefinitionException,指明 No bean named 'transactionManager' is definded.
4.配置测试类
添加如下内容在class前,用于配置applicationContext.xml文件的位置。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
5.创建测试方法
创建测试用方法,推荐名称为 “被测方法名称+ Test”。
测试方法上方加入 @Test
6.通过JUnit4执行
右键方法名,选择则“Run As”→“JUnit Test”即可