使用junit进行集成spring项目的单元测试
Posted 没有梦想-何必远方
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用junit进行集成spring项目的单元测试相关的知识,希望对你有一定的参考价值。
本文介绍下项目集成spring,如何使用junit进行单元测试。
我们知道spring的项目测试时可以手写一个main方法,用ClassPathXmlApplicationContext 或 FileSystemXmlApplicationContext读取配置文件,然后实例化bean进行测试,类似下面这样:
ApplicationContext factory=new ClassPathXmlApplicationContext("classpath:applicaContext.xml");
IHelloWorld hw = (IHelloWorld) factory.getBean("helloworldbean");
log.info(hw.getContent("XXX"));
这样手动去getBean毕竟是很麻烦的,想一下如果可以直接用spring的autowire 来注入bean,直接调用方法,那该多省事啊 ~
而现在junit就是提供这样的功能 ~
使用方法
<!-- 包依赖 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
<optional>true</optional>
</dependency>
maven项目在test/java 文件夹下创建我们的测试父类:
BaseTest ,具体业务测试类:CreditServiceImplTest
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
@ContextConfiguration(locations = "classpath:applicationContext-resources.xml")
public class BaseTest extends AbstractJUnit4SpringContextTests
public class CreditServiceImplTest extends BaseTest
public static Logger log = LogManager.getLogger(CreditServiceImplTest.class.getName());
@Autowired
private CreditService creditService;
@Before
public void setUp() throws Exception
Assert.notNull(creditService, "Cannot get bean [creditService]");
@After
public void tearDown() throws Exception
this.creditService = null;
@Test
public void getCredit()
//具体测试内容
这样我们就可以注入creditService ,直接开始方法测试了。
同时,这样测试也可以直接执行sql语句进行数据库初始化,比如:
public void initData(String scriptName)
this.executeSqlScript("classpath:/initialData/script/a.sql", false);
至此,使用junit进行集成spring项目的单元测试整理完成 ~ 下篇讲会讲解下如何使用junit进行多线程并发测试 ~
以上是关于使用junit进行集成spring项目的单元测试的主要内容,如果未能解决你的问题,请参考以下文章