栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用Spring测试模拟的JNDI数据源?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用Spring测试模拟的JNDI数据源?

我通常在单独的文件中定义我的JNDI依赖项,例如

datasource-context.xml

<beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:jee="http://www.springframework.org/schema/jee"    xmlns:p="http://www.springframework.org/schema/p"    xsi:schemaLocation="        http://www.springframework.org/schema/beans         http://www.springframework.org/schema/beans/spring-beans-3.0.xsd        http://www.springframework.org/schema/jee        http://www.springframework.org/schema/jee/spring-jee-3.0.xsd">    <jee:jndi-lookup id="dataSource"         jndi-name="java:comp/env/dataSource"         expected-type="javax.sql.DataSource" /></beans>

这样,在测试资源中,我可以创建另一个文件并定义测试数据源,但是它适合我,例如

datasource-testcontext.xml

<beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:p="http://www.springframework.org/schema/p"    xsi:schemaLocation="        http://www.springframework.org/schema/beans         http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">    <bean id="dataSource"     p:driverClassName="org.hsqldb.jdbcDriver"        p:url="jdbc:hsqldb:hsql://localhost:9001"        p:username="sa"        p:password="" /> </beans>

然后在测试类中,我使用数据源的测试配置,而不是依赖于JNDI 的生产配置:

@ContextConfiguration({    "classpath*:meta-INF/spring/datasource-testcontext.xml",    "classpath*:meta-INF/spring/session-factory-context.xml"})public class MyTest {}

如果未在单独的文件中定义数据源,你仍然可以轻松地对JNDI调用返回的对象进行存根:

  • 像这样:在容器外部注入用于JUnit测试的JNDI数据源
  • 或在package中使用类
    org.springframework.mock.jndi
    ,即。
    SimpleNamingContextBuilder
    (在此calass的javadoc中有一个示例)。很棒的!非常感谢!


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/415073.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号