`

Spring中集成测试

阅读更多

今天学习了Spring的集成测试,分享给大家学习:

第一种:用传统的TestCase做测试,先说下非Spring的,
首先是一个类Abc中写了add方法,
public class Abc {
public int add(int i,int j ){
System.out.println(i+j);
return i+j;
}

}
接下来对这个方法进行一些测试:

public class AbcTest extends TestCase {
public void testAdd(){

assertEquals(3, new Abc().add(1, 2));
}


}
右键-->run as junit test


在Spring中用传统的TestCase测试,如下:

给出一个要测试的类,AccountManager


@Component
//默认将类中的所有函数纳入事务管理.
@Transactional
public class AccountManager {

private static Logger logger = LoggerFactory.getLogger(AccountManager.class);

private UserDao userDao;
private RoleDao roleDao;
private AuthorityDao authorityDao;

//-- User Manager --//
@Transactional(readOnly = true)
public User getUser(Long id) {
return userDao.get(id);
}

public void saveUser(User entity) {
userDao.save(entity);
}





@Autowired
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}

@Autowired
public void setRoleDao(RoleDao roleDao) {
this.roleDao = roleDao;
}

@Autowired
public void setAuthorityDao(AuthorityDao authorityDao) {
this.authorityDao = authorityDao;
}
}


----------------------测试类--------------

public class TestAccountManager extends TestCase {
public ApplicationContext ctx = null; ①Spring容器引用
private static String[] CONFIG_FILES = { ②Spring配置文件
"classpath:applicationContext.xml"
};
protected void setUp() throws Exception {③启动Spring容器
ctx = new FileSystemXmlApplicationContext(CONFIG_FILES);
}
public void testgetUser() { ④测试方法一
④-1从容器中获取Bean
AccountManager aManager = (AccountManager ) ctx.getBean("accountManager ");

User u = aManager.getUser(1L);
syso(u.getId);
}

public void testsaveUser() { ④测试方法一
④-1从容器中获取Bean
AccountManager aManager = (AccountManager ) ctx.getBean("accountManager ");
User user = new User();
user.setId(10L);
user.setName("test");

User u = aManager.saveUser(user);
syso(u.getId);
}

}

说明----->:这种方法经过测试有的可能不使用,会报错no session ,和延迟加载有关系的。

于是我直接换了第二种:可以解决延迟加载,也不会破坏数据库的。

AbstractTransactionalSpringContextTests

----------测试类2------------------

package com.jlusoft.oss.mytest;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.test.AbstractTransactionalSpringContextTests;

import com.jlusoft.oss.entity.account.User;
import com.jlusoft.oss.service.account.AccountManager;

import junit.framework.TestCase;

public class TestAccountManager extends AbstractTransactionalSpringContextTests {

public ApplicationContext ctx = null;

private static String files = "classpath:applicationContext.xml";

private AccountManager aManager;

public void setaManager(AccountManager aManager) {
this.aManager = aManager;
}

@Override
protected String[] getConfigLocations() {
return new String[] { "classpath:applicationContext.xml" };
}
//测试getUser
public void testgetUser() {
User user = aManager.getUser(1L);
assertEquals(user.getName(), "test");
System.out.println(user.getEmail());
System.out.println(user.getName());
}
//测试saveUser
public void testSaveUser(){

User user = new User();
user.setEmail("..@thinkjoy.cn");
user.setId(8L);
user.setName("..");
user.setLoginName("...");
user.setPassword("734cfc93fd961ef53ba0a15dc71a26f6");
aManager.saveUser(user);
System.out.println(user.getId());
}
// 可以设置不执行的方法
private static String[] IGNORED_METHODS = {"testgetUser","testSaveUser"};
@Override
protected boolean isDisabledInThisEnvironment(String testMethodName) {
for (String  method : IGNORED_METHODS) {
if (method.equals(testMethodName)) {
return true;
}
}
return false;
}


}









分享到:
评论

相关推荐

    Spring中进行集成测试

    3. **测试数据源**:在集成测试中,通常需要模拟数据库交互。Spring提供了`@Sql`和`@SqlGroup`注解,用于在测试前后执行SQL脚本,用来填充或清理测试数据。`@DataJpaTest`和`@WebMvcTest`等专门测试注解则可以自动...

    Spring Boot 单元测试和集成测试实现详解

    本文详细介绍了 Spring Boot 中的单元测试和集成测试的实现细节,包括使用 JUnit 和 Hamcrest 框架来进行单元测试,以及使用@SpringBootTest 注解来标记集成测试。这对于学习 Spring Boot 和测试有重要参考价值。

    Spring2集成测试

    当我们谈论“Spring2集成测试”,我们指的是利用Spring框架提供的工具和最佳实践来测试整个应用程序的集成部分,确保各个组件协同工作。 集成测试是软件开发过程中的关键步骤,它位于单元测试之后,系统测试之前,...

    spring集成测试工具的详细讲解

    在集成测试中,我们可能不希望真正调用数据库或者外部服务,这时可以使用Mockito来模拟这些依赖,确保测试的隔离性和效率。 在实际操作中,我们通常会先建立一个数据库用于测试,这个数据库可以是与生产环境完全...

    Spring3单元测试和集成测试

    在Spring框架中,单元测试和集成测试是软件开发过程中不可或缺的部分。它们确保代码的质量和功能的正确性。本文将深入探讨Spring3中的单元测试和集成测试,并提供相关的实践指导。 ### 单元测试 单元测试是指针对...

    详细讲解在Spring中进行集成测试.doc

    在Spring框架中进行集成测试是确保应用程序在各个组件协同工作时仍能正常运行的重要步骤。集成测试关注的是系统中各个组件间的交互,而非单一组件的功能。以下是对在Spring中进行集成测试的详细讲解: 首先,集成...

    基于TestNG+Mockito及自动装配注解的Spring MVC集成测试

    总之,TestNG、Mockito和Spring MVC的自动装配注解在集成测试中扮演了关键角色,它们共同帮助开发者编写出高效、全面的测试,确保代码的质量和系统的稳定性。通过学习和实践这些工具和技术,IT专业人士能够更好地...

    使用Rest Assured和Mockmvc进行Spring mvc集成测试.zip

    在Spring MVC集成测试中,通常会结合使用Rest Assured和MockMvc。MockMvc用于测试内部逻辑,确保控制器在各种场景下正确工作,而Rest Assured则可以模拟外部调用,测试应用如何与其他服务通信。这种组合可以提供全面...

    javamelody与spring集成测试入门例子

    在Spring框架中集成JavaMelody,可以让我们在开发和运维过程中更方便地了解应用的健康状况,及时发现并解决问题。 集成JavaMelody到Spring项目中,首先需要在项目的Maven或Gradle构建文件中添加JavaMelody的依赖。...

    SpringBoot-SpringSecurity集成

    当Spring Security集成到Spring Boot中时,会自动创建一个默认的安全配置。默认情况下,所有请求都是受保护的,需要登录才能访问。可以通过自定义配置覆盖这些默认设置。 5. **自定义登录页面**: 默认的登录页面...

    spring与dbunit集成测试

    本文将深入探讨如何将Spring与DBUnit整合,以实现高效、可靠的数据库集成测试。 首先,理解Spring的核心功能是至关重要的。Spring是一个开源的Java平台,它为构建应用程序提供了全面的支持,包括依赖注入...

    Spring与Hibernate集成

    6. **测试和运行**: 最后,编写测试用例验证Spring和Hibernate的集成是否成功。运行应用,确保数据的持久化和检索功能正常工作。 在实际开发中,为了提高代码的可读性和可维护性,我们可以采用基于注解的配置和实体...

    drools5.2final与spring3集成测试

    此包主要测试drools5.2与spring整合,drools可调用数据库参数 环境准备,mysql/postgres 用到的表及数据见db.sql 修改hibernate.properties对应的参数 运行测试: com/jview/test/testMapping.java ...

    SpringCloud集成Python-1017

    4. 可能还会有集成测试,验证SpringCloud与Python服务之间的通信是否正常。 这个项目对于那些希望利用Python特性的SpringCloud开发者来说,是一个很好的学习资源。它不仅展示了如何在SpringCloud环境下整合Python...

    07. Spring Boot单元测试

    同时,Spring Boot提供了`@SpringBootTest`注解,用于启动一个完整的Spring应用上下文,这样可以在测试中使用到Spring的所有功能。 三、Mockito与Spring Boot测试 Mockito是一个流行的Java单元测试框架,它允许我们...

    Spring之Spring2.5集成Hibernate3.6

    在实际集成过程中,开发者需要配置Spring的Hibernate模板或JPA支持,创建SessionFactory或EntityManagerFactory,然后定义数据访问对象(DAO),并利用Spring的依赖注入将它们注入到业务服务(Service)中。...

Global site tag (gtag.js) - Google Analytics