JUnit单元测试
来源:互联网 发布:传奇世界h5源码 编辑:程序博客网 时间:2024/06/06 15:53
单元测试步骤:
1. 引入jar包 junit-*.jar
2. 创建UnitTestBase类
3. 创建具体执行单元测试的类,以及类的方法
4.执行时可指定方法执行,也可以执行整个类,此时会依次执行每个方法
UnitTestBase是所有具体执行类的父类,也就是所有执行类都需要继承UnitTestBase类
在创建的测试类中,构造无参的构造方法,通过super向UnitTestBase传入参数
测试类和测试类中的方法都需要加注解
类:@RunWith(BlockJUnit4ClassRunner.class)
方法:@Test
笔者在spring学习中首次接触到单元测试,所以以下代码示例是基于spring IOC容器的
import org.junit.After;import org.junit.Before;import org.springframework.beans.BeansException;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.util.StringUtils;public class UnitTestBase {private ClassPathXmlApplicationContext context;private String springXmlpath;public UnitTestBase() {}public UnitTestBase(String springXmlpath) {this.springXmlpath = springXmlpath;}@Beforepublic void before() {if (StringUtils.isEmpty(springXmlpath)) {springXmlpath = "classpath*:spring-*.xml";}try {context = new ClassPathXmlApplicationContext(springXmlpath.split("[,\\s]+"));context.start();} catch (BeansException e) {e.printStackTrace();}}@Afterpublic void after() {context.destroy();}@SuppressWarnings("unchecked")protected <T extends Object> T getBean(String beanId) {try {return (T)context.getBean(beanId);} catch (BeansException e) {e.printStackTrace();return null;}}protected <T extends Object> T getBean(Class<T> clazz) {try {return context.getBean(clazz);} catch (BeansException e) {e.printStackTrace();return null;}}}
import org.junit.Test;import org.junit.runner.RunWith;import org.junit.runners.BlockJUnit4ClassRunner;import test.UnitTestBase;@RunWith(BlockJUnit4ClassRunner.class)public class TestBeanLifeCycle extends UnitTestBase{public TestBeanLifeCycle(){super("classpath*:spring-bean-lifeCycle.xml");}@Testpublic void test(){super.getBean("beanLifeCycle");}}
在执行test方法时,会先执行UnitTestBase的before方法,之后会执行after方法
每次执行一次test方法都可以看做打开一个IOC容器,通过getbean的方法,从IOC容器中得到一个实例对象
在测试类的构造方法中传入xml文件的名称(位于src文件夹下)
若不使用单元测试,在Main方法中也是可行的
import org.springframework.beans.BeansException;import org.springframework.context.support.ClassPathXmlApplicationContext;public class MainTest {public static void main(String[] args) {ClassPathXmlApplicationContext context;String springXmlpath="classpath*:spring-bean-lifeCycle.xml";try {context = new ClassPathXmlApplicationContext(springXmlpath.split("[,\\s]+"));context.start();context.getBean("beanLifeCycle");context.destroy();} catch (BeansException e) {e.printStackTrace();}}}
0 0
- JUnit单元测试
- JUnit 单元测试
- 单元测试JUnit
- Junit单元测试
- Junit单元测试
- junit单元测试
- JUnit单元测试
- Junit单元测试
- JUnit单元测试
- junit单元测试
- Junit单元测试
- Junit 单元测试
- Junit单元测试
- JUnit单元测试
- JUnit单元测试
- jUnit 单元测试
- Junit单元测试
- junit 单元测试
- 【NOIP 模拟题】T2(next数组|线段树+最长上升子序列)
- Ubuntu 16.0 LAMP 配置
- [BZOJbegin][noip2016十连测第八场]降雷皇(dp+线段树)
- 插入排序
- 【Linux基础】 Redhat6.5中OpenOffice的安装
- JUnit单元测试
- Thymeleaf模板表达式
- idea 的使用(1) 界面元素
- Java泛型深入(一)
- 四皇后问题(同理适用于n皇后问题)图片版
- Python递归遍历目录下所有文件
- 继承的总结
- Spring声明式事务管理方法
- fstream在VC++6.0与标准C++中的差异