`
- 浏览:
31309 次
-
今天学习了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;
}
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Spring中进行集成测试
详细讲解了spring中进行的集中测试。供spring学习者参考
主要介绍了Spring Boot 单元测试和集成测试实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
此文档详细讲解了在spring中如何进行集成测试。
使用Rest Assured和Mockmvc进行Spring mvc集成测试.zip
NULL 博文链接:https://caerun.iteye.com/blog/1108226
此包主要测试drools5.2与spring整合,drools可调用数据库参数 环境准备,mysql/postgres 用到的表及数据见db.sql 修改hibernate.properties对应的参数 运行测试: com/jview/test/testMapping.java ...
NULL 博文链接:https://caerun.iteye.com/blog/1158285
下载后先建一个数据库,然后在test这个源文件下面去运行
该项目通过springcloud集成了mybatis操作mysql数据库,项目主要分为7个model模块,配置模块(config),注册模块(discovery),监控模块(monitor),服务模块_mybatisService(通过mybatis操作mysql),服务模块_...
自己研制的spring 集成测试类。希望对大家有一定的帮之。我使用的是注解的spring
javamelody对cpu等实时监控,项目导入运行可以看见图片等相关信息
memcached和spring集成、内附测试例子
spring集成TestNG与Mockito框架单元测试方法,方便学习者能快速上手如何单测,对自己的代码能够有质量保证。
SpringGateway集成Oauth2进行认证授权;还可以这么玩;SSO功能的认证;自己测试正常;SpringGateway集成Oauth2进行认证授权;还可以这么玩;SSO功能的认证;自己测试正常;SpringGateway集成Oauth2进行认证授权;还...
spring新功能支持集成redis存储通信,开发完后贡献给大家,里面有完整的测试用例覆盖。使用起来非常方便,以前都是自己开发与redis通讯的工具类,现在托管给spring管理。
如何将Spock模拟注入到Spring集成测试中该项目旨在用作示例指南,以说明如何将Spock与Spring(和Spring Boot)结合使用,并结合使用Spring配置和Spock模拟。 有时,您想使用整个Spring上下文进行更完整的集成测试。 ...