博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
junit4 spring集成测试
阅读量:6603 次
发布时间:2019-06-24

本文共 2133 字,大约阅读时间需要 7 分钟。

hot3.png

   很多时候我看见小伙伴这样测试spring的service或者dao,每个类后面写个main,使用new方式加载spring配置文件,获取需要测试的实例,然后对实例进行测试。稍微好一点的在junit测试类里面new加载spring配置文件进行测试。

    其实junit测试spring可以很方便的进行。这里会用到spring-test-xxx.jar,junit4的jar。

    其中要注意的是:

@RunWith(SpringJUnit4ClassRunner.class)

1、如果spring配置文件applicationContext.xml在classpath路径下,即通常的src目录下,这样加载配置文件,用classpath前缀。

@ContextConfiguration(locations = { "classpath:applicationContext.xml" })

2、但是在web项目中,有些人喜欢把spring配置文件applicationContext.xml放在WEB-INF目录下,这里不是classpath目录。这种情况可以按如下方式配置:用file前缀,指定配置文件的绝对路径。貌似这种方式不是很友好。

@ContextConfiguration(locations = { "file:F:\\workspace\\web-test\\src\\main\\resources\\"		+ "applicationContext.xml" })

spring配置文件applicationContext.xml:

待测试的service,就一个方法,求两个整数的和。

package com.wss.lsl.junit.demo.service;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Service;@Servicepublic class CalculateService {	private Logger logger = LoggerFactory.getLogger(getClass());	/**	 * 计算:返回两个整数的和	 * 	 * @param first	 * @param second	 * @return	 */	public int sum(int first, int second) {		logger.info("求和参数:first={}, second={}", first, second);		return first + second;	}}

测试基类,所有其他的测试类集成此类,从而无需再重复配置加载spring配置文件。

package com.wss.lsl.junit.demo;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = { "classpath:applicationContext.xml" })public class BaseTest {	@Test	public void _() {	}}

测试类如下,我们可以很方便把要测试的实例@Autowired进来,这样优雅多了。

package com.wss.lsl.junit.demo.service;import static org.junit.Assert.*;import org.junit.Test;import org.springframework.beans.factory.annotation.Autowired;import com.wss.lsl.junit.demo.BaseTest;public class CalculateServiceTest extends BaseTest {	@Autowired	private CalculateService calculateService;	@Test	public void testSum() {		int expected = 5, first = 3, second = 2;		int real = calculateService.sum(first, second);				// 验证		assertEquals(expected, real);	}}

转载于:https://my.oschina.net/u/2007041/blog/508520

你可能感兴趣的文章
创建Visual Studio项目模版向导的几篇参考文章
查看>>
JSP 和 ASP.NET 谁能主宰未来【转】
查看>>
TCP/IP协议族-----13、运输层简单介绍
查看>>
Java魔法堂:打包知识点之META-INF/MAINFEST.MF
查看>>
Elastic Search搜索引擎在SpringBoot中的实践
查看>>
大数据量分页存储过程效率测试附代码 (转载)
查看>>
thinkphp模板中for循环与switch的使用
查看>>
php无刷新上传图片
查看>>
第 7 章 Pipe
查看>>
C#设计模式学习笔记-单例模式
查看>>
安卓开发环境配置及HelloWorld
查看>>
[LintCode] Longest Increasing Subsequence 最长递增子序列
查看>>
C# winform 上传文件到服务器
查看>>
runOnUiThread更新主线程
查看>>
Java中Return和Finally运行顺序的实现
查看>>
Angular遇上CoffeeScript - NgComponent封装
查看>>
C++重要知识点小结---1
查看>>
[游戏模版1] MFC最小框架(base function including)
查看>>
javax.validation.ValidationException: Unable to create a Configuration
查看>>
word排版汇总
查看>>