Spring项目中使用Junit单元测试并配置数据源的问题
来源:互联网 发布:c4d软件安装教程 编辑:程序博客网 时间:2024/06/17 15:02
一、问题描述
由于公司项目中的数据源是配置在Tomcat中的server.xml中的,所以在使用Junit进行单元测试的时候,无法获取数据源。
二、解决方案
由于项目集成了Spring的自动注入等功能,所以在使用Junit进行单元测试的时候需要保证Spring的配置文件都能被加载,同时需要保证连接数据库的数据源必须被加载,这就需要配置单独的数据源,具体方法如下:
- 新建spring_jndi_test.xml
<?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> <beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <beans:property name="driverClassName" value="oracle.jdbc.OracleDriver" /> <beans:property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:sjk" /> <beans:property name="username" value="username" /> <beans:property name="password" value="password" /> </beans:bean></beans:beans>
- 在Junit测试类中加载配置文件与获取Bean
public class CommonDAOJdbc_StandardTest { private volatile static BeanFactory factory; @Test public void testGetFirmCanOutBalance() { // 获取Bean CommonDAO commonDAO = (CommonDAO) factory.getBean("commonDAO"); // 此处可调用CommonDAO类中的方法 } @Before public void init() { System.out.println("加载spring配置开始 ............"); ArrayList<String> list = new ArrayList<String>(); list.add("spring.xml"); // 将Sprint配置文件加入待加载列表 list.add("Spring_jndi_test.xml"); // 将测试用的数据源配置文件加入待加载列表 try { factory = new ClassPathXmlApplicationContext(list.toArray(new String[list.size()])); // 保证虚拟机退出之前 spring中singtleton对象自定义销毁方法会执行 ((AbstractApplicationContext) factory).registerShutdownHook(); } catch (Exception e) { e.printStackTrace(); System.out.println("加载配置文件时发生错误" + e); } System.out.println("加载spring配置结束............."); }}
至此,便可以进行Junit的单元测试,且数据源也能获取了。
当然,如果出现“java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver”,那么则需要Build Path -> Add Libraries … 引入ojdbc包即可。
点击进入Junit官网
0 0
- Spring项目中使用Junit单元测试并配置数据源的问题
- 使用junit进行集成spring项目的单元测试
- 在使用了spring的web项目中进行junit单元测试
- 单元测试中junit的使用
- 配置数据源、数据库连接池、log4j、Junit单元测试
- Web项目开发中 Spring整合Junit单元测试
- spring配置redis的单元测试(spring-test,junit)
- android 中使用单元测试 Junit的步骤
- Spring 使用Junit 进行单元测试
- 单元测试Junit的使用
- IDEA 在Maven项目管理时使用Junit做单元测试的配置
- Maven管理的Spring Web项目集成JUnit单元测试
- Maven管理的Spring Web项目集成JUnit单元测试
- Maven管理的Spring Web项目集成JUnit单元测试
- Maven管理的Spring Web项目集成JUnit单元测试
- 在Spring应用中使用junit进行单元测试
- Tomcat配置 c3p0数据源,Spring项目使用
- 在maven项目中使用Junit进行单元测试(一)
- POJ 1980 Unit Fraction Partition(dfs)
- C#Timer 控件
- 反射
- Android 录音声波图
- 欢迎使用CSDN-markdown编辑器
- Spring项目中使用Junit单元测试并配置数据源的问题
- Runtime之objc_msgSend函数
- POJ 2393 Yogurt factory(贪心)
- fastdfs上传文件只有文件服务器上该文件同路径下多一个-m的文件
- Cannot load library: soinfo_link_image(linker.cpp:1635)
- socket select模型
- 记一次现场SDE无法启动的解决
- ios 收起键盘
- TableView性能优化——动态cell适应工具(UITableView+FDTemplateLayoutCell)