`
zwt2001267
  • 浏览: 444747 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring和testng的整合 .

 
阅读更多

转自: http://blog.csdn.net/blackchoc/article/details/5711860

 

项目中用到了testNG作为单元测试工具,至于testNG对比junit有啥好处不太清楚,至少从程序员写testcase来说似乎和junit 4.x并没有太大的区别。但是据说和一些测试工具整合的时候比较方便。ok,这不是重点。

 

Spring专门为Junit testNG提供了一套测试集成接口类——AbstractSpringContextTests类,对于testNG就是其子类:AbstractTestNGSpringContextTests。Spring和testNG整合后,进行单元测试的时只要test类继承该类,就可以方便的使用spring注入。实现了spring和testNG的无缝整合,我们可以像写普通类那样测试被spring IoC容器所管理的类(否则我们必须在开始执行单元测试前重新加载Spring beanfactory,再用getBean("xxx")的方式获取IoC容器中类。)

 

除此以外,对测试类spring beanfactory缓存,使得多个测试类之间可以共享同一个的beanfactory实例,从而减少了重复生成beanfactory,提高了运行效率。

 

继承该类的测试用例在spring管理的事务中进行,测试完后对数据库的记录不会造成任何影响。你对数据库进行一些操作后,它会自动把数据库回滚,这样就保证了你的测试对于环境没有任何影响

 

集成代码如下

 

@ContextConfiguration 
(locations={"applicationContext.xml"})
public class TestUser extends AbstractTestNGSpringContextTests{
 
 @Autowired
 UserService userService;
 
 @Test
 public void test_save_user(){
  User user = new User();
  user .setPassword("123456");
  user .setSex(1);
  user .setPartyName("test1");
  user .setEmail("aa@bb.com");
  userService.save(user);
 }
 
 @Test
 public void test_inject_factory(){
  Assert.assertNotNull(userService);
 }
}

 

 

 

其中最重要的就是@ContextConfiguration。默认的从classpath目录下读取applicationContext.xml作为spring的启动配置文件(对应ClassPathXmlApplicationContext?)。
等同于(locations={"classpath:applicationContext1.xml"})。因此必须确保spring的配置文件在classpath中。
如果有多个spring配置,用逗号进行分隔(locations={"applicationContext.xml", "/applicationContex_transaction.xml"})

 

另外一种采用filepath定位spring配置文件(对应FileSystemXmlApplicationContext?).
比如在web项目中将相应的配置文件放到WEB-INF目录下"file:WebRoot/WEB-INF/config/applicationContext.xml",或者可以指定绝对路径。

 

 

 

实际问题:

项目中,将配置放在了web-inf/config/目录下对应的xml文件中,但是又在xml文件中对web-inf/config/properties/目录下的几个包括log4j.properties在内的几个properties文件进行了引用。

 

如果使用file方式指定spring配置文件位置的话,当加载到xml文件中引用的property文件时就会报文件找不到。因为仅仅指定采用file方式读取xml文件,对于对于property文件仍然会去classpath搜索。

 

 

解决方法

将Webroot加入到项目的classpath目录中。

或者更好的做法是指定在运行testNG测试时,将webroot加入到classpath中。

 

Eclipse中 run/run configuration菜单中进行配置



 

 

  • 大小: 111.3 KB
分享到:
评论

相关推荐

    testNG集成spring

    - **简介**:这是一个基础的支持类,用于提供Spring Test Context Framework与TestNG环境之间的整合。当测试类继承此类时,可以访问以下受保护的成员变量: - **`applicationContext`**:此变量可用于显式地查找...

    TestNG-Spring-Example

    TestNG和Spring是两个在Java开发中非常重要的框架。TestNG是一个强大的测试框架,它提供了比JUnit更丰富的功能,如并行测试、测试套件、报告等,而Spring则是一个全面的企业级应用框架,用于简化Java开发,特别是...

    Spring+hibernate整合源代码

    可以使用 Spring 提供的 TestContext 框架,结合 JUnit 或 TestNG,对 Service 和 DAO 层进行测试。 10. **最佳实践**:在实际项目中,为了提高性能和可维护性,通常会采用 MyBatis 或 JPA 作为更轻量级的数据访问...

    spring5资源.zip

    5. **测试模块**:Spring Test模块提供了对Spring应用的单元测试和集成测试的支持,包括Spring TestContext框架、Mock Objects以及对JUnit和TestNG的集成。 在"spring5资源.zip"压缩包中,可能包含以下jar文件: - ...

    Java+spring boot+selenium+testng+reportng

    需要安装的工具idea jdk1.8 (mysql,navicat) chromedriver_win32 ...如果看test包,就是用Java+spring boot+selenium+testng+reportng搭的一个测试架构 http://localhost:63342/demo/test-output/html/index.html

    spring-Hibernate整合代码测试过程

    Spring提供了TestNG或JUnit支持,结合Mockito等工具,可以模拟数据源和业务对象,进行无数据库环境下的测试。对于集成测试,可以直接运行应用程序,测试整个流程的正确性。 8. **问题排查**:在整合过程中可能会...

    Spring框架系列(1) - Spring和Spring框架组成.doc

    7. 一站式解决方案:Spring可以整合多种开源框架和第三方库,例如SpringMVC、Spring JDBC等,提供了一站式的开发体验。 使用Spring框架的好处: 1. 提高开发效率:通过IoC和DI,可以减少代码的重复,提高开发速度...

    java_spring_day05.pdf

    - 提供了对JUnit和TestNG的支持。 ### SpringMVC **知识点概述:** SpringMVC是Spring框架的一个子项目,专门用于构建Web应用程序。它遵循MVC架构模式,将Web应用程序分为模型、视图和控制器三个部分。 **详细...

    spring-5.0.0.M4jar包整合

    `spring-test-5.0.0.M4.jar`是Spring的测试模块,提供了测试支持,如JUnit和TestNG的集成,使得开发者可以轻松地进行单元测试和集成测试,确保代码的质量。 `spring-jdbc-5.0.0.M4.jar`模块提供了对JDBC(Java ...

    spring4.1.0.RELEASE版jar包【整合包,包含所有的主要jar包】-正式版下载

    6. **源码和文档**:除了JAR包之外,整合包还包含了完整的源代码和API文档,这对于学习Spring的工作原理和API使用非常有帮助。 #### 四、安装和使用指南 1. **下载**:可以从官方仓库或其他可靠的镜像站点下载`...

    spring文档4.3.x版本

    6. Test(测试模块):提供了测试Spring组件的工具,包括支持JUnit和TestNG框架。 Spring框架的使用场景广泛,包括依赖管理和命名约定。文档会介绍Spring的依赖管理,以及如何在Maven、Gradle和Ivy等构建工具中管理...

    spring4.1核心包

    15. spring-test-4.1.1.RELEASE.jar 支持Spring组建JUnit和TestNG的单元测试和集成测试。 16. spring-tx-4.1.1.RELEASE.jar 17. spring-web-4.1.1.RELEASE.jar 包含Web应用开发时,用到Spring框架时所需的核心类,...

    官方源码 spring-framework-5.2.11.RELEASE.zip

    Spring提供了全面的测试支持,包括JUnit、TestNG整合,以及Mockito、Spring Test等工具,帮助开发者编写单元测试和集成测试。5.2.11.RELEASE版本的测试框架更加稳定,增强了对Spock测试框架的兼容性。 10. **安全...

    Spring 相关jar包简介 (spring 的包)

    16. **spring-test.jar**:提供了测试支持,包括Mock对象、测试注解、JUnit和TestNG的集成,便于单元测试和集成测试。 了解这些jar包的作用,可以帮助开发者根据项目需求选择合适的模块,合理地组织和优化应用结构...

    day38 20-Spring与Junit整合

    标题中的“Spring与JUnit整合”指的是在Java开发中将Spring框架和JUnit测试框架结合使用,以便进行高效且全面的单元测试。Spring是一个广泛使用的开源框架,它提供了依赖注入(DI)和面向切面编程(AOP)等功能,...

    spring-framework-3.2.3.RELEASE-dist.zip

    Spring为单元测试和集成测试提供了丰富的支持,包括模拟对象、测试注解以及与JUnit、TestNG等测试框架的整合,使得测试过程更加便捷。 8. **Spring Boot** 虽然不在当前版本中,但Spring Boot是基于Spring框架的...

    spring-framework-4.3.5.RELEASE-dist.rar

    在4.3.5.RELEASE版本中,Spring对这些数据访问技术的整合可能会有进一步的优化,提高数据操作的简便性和性能。 在Web开发方面,Spring MVC作为Spring框架的一部分,提供了模型-视图-控制器架构,用于构建强大的Web...

    spring整合包

    6. **Test(测试)**:Spring Test模块支持单元测试和集成测试,提供了与JUnit和TestNG的集成,可以方便地进行依赖注入到测试类。 这个"spring整合包"中可能包含了上述提到的各个模块的jar包,以及Spring与其他框架...

    spring-2.0.x-api

    提供了JUnit和TestNG的集成,Spring TestContext Framework使得单元测试和集成测试更加便捷,支持@ContextConfiguration、@Autowired等注解,简化了测试代码。 10. **MVC注解** Spring MVC引入了一系列注解,如@...

    Spring框架项目所依赖的所有JAR

    Spring框架是Java应用程序开发中的一个核心框架,它简化了创建、配置和管理bean以及整合不同组件的工作。这个压缩包文件包含了一系列Spring框架项目所依赖的关键JAR文件,这些文件是构建基于Spring的应用程序不可或...

Global site tag (gtag.js) - Google Analytics