Java Config 下的Spring Test方式
2015-10-29 14:07
543 查看
用了三种方式:
1.纯手动取bean:
2.采用spring-test
3.采用Mockito
需要引入相应包:
这里@Mock的话,并不会真正的去执行数据库的操作。
还有一种用法是@Spy,暂时不了解具体使用方式,待研究。
相比之下,还是spring-test标准一些。
1.纯手动取bean:
package com.wang.test; import com.marsmother.commission.core.config.MapperConfig; import com.marsmother.commission.core.config.PropertyConfig; import com.marsmother.commission.core.config.ServiceConfig; import com.marsmother.commission.core.dto.GeneralResponseData; import com.marsmother.commission.core.service.UserService; import com.marsmother.commission.site.config.SecurityConfig; import org.junit.Before; import org.junit.Test; import org.springframework.context.annotation.AnnotationConfigApplicationContext; /** * Created by Wanglei on 15/10/29. */ public class CustomeTest { private static AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); @Before public void tearUp(){ context.register(PropertyConfig.class); context.register(ServiceConfig.class); context.register(SecurityConfig.class); context.register(MapperConfig.class); context.refresh(); } @Test public void testUser(){ UserService userService = context.getBean(UserService.class); Long userId = 3L; GeneralResponseData data = userService.addUserRelation(userId); System.out.println(data.getMsg()); } }
2.采用spring-test
package com.wang.test; import com.marsmother.commission.core.config.MapperConfig; import com.marsmother.commission.core.config.PropertyConfig; import com.marsmother.commission.core.config.ServiceConfig; import com.marsmother.commission.core.dto.GeneralResponseData; import com.marsmother.commission.core.service.UserService; import com.marsmother.commission.site.config.SecurityConfig; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * Created by Wanglei on 15/10/29. */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = {PropertyConfig.class, ServiceConfig.class, SecurityConfig.class, MapperConfig.class}) public class SpringTest { @Autowired private UserService userService; @Test public void testUser(){ GeneralResponseData data= userService.addUserRelation(3L); System.out.println(data.getMsg()); } }
3.采用Mockito
需要引入相应包:
<dependency> <groupId>org.mockito</groupId> <artifactId>mockito-all</artifactId> <version>1.9.5</version> <scope>test</scope> </dependency>
package com.wang.test; import com.marsmother.commission.core.dto.GeneralResponseData; import com.marsmother.commission.core.presistence.FollowNumberMapper; import com.marsmother.commission.core.presistence.UserMapper; import com.marsmother.commission.core.presistence.UserRelationMapper; import com.marsmother.commission.core.service.UserService; import org.junit.Before; import org.junit.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; /** * Created by Wanglei on 15/10/29. */ public class TestUserService { @InjectMocks private UserService userService; @Mock private FollowNumberMapper followNumberMapper; @Mock private UserMapper userMapper; @Mock private UserRelationMapper userRelationMapper; @Before public void init(){ MockitoAnnotations.initMocks(this); } @Test public void testUser(){ Long userId = 3L; GeneralResponseData result = userService.addUserRelation(userId); System.out.println(result.getMsg()); } }
这里@Mock的话,并不会真正的去执行数据库的操作。
还有一种用法是@Spy,暂时不了解具体使用方式,待研究。
相比之下,还是spring-test标准一些。
相关文章推荐
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- eclipse的 ctrl + 1 在idea中的 快捷键 alt + shift + l
- Java多线程,并发编程等
- Java 随机数
- for循环遍历删除报错:java.util.ConcurrentModificationException
- Maven的安装使用以及 Maven+Spring hello world example
- Quartz集成springMVC 的方案二(持久化任务、集群和分布式)
- Java遍历Map对象的四种方式
- Maven实战 第16章 m2eclipse
- Eclipse 小图标的意义
- Java AbstractCollection源码分析
- 常见小算法集合
- java的转义字符
- 如何写出好的Java代码
- java 获取系统时间
- Java的引用类型
- Eclipse中项目的导入和导出
- Java的异常体系
- Java内存分配
- Java中的内存泄露问题