Java Config下的Spring Test几种方式实例详解
作者:lqh 时间:2022-12-17 00:31:36
Java Config 下的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标准一些。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
来源:http://www.cnblogs.com/juepei/p/4920369.html
标签:Java,Config,Spring,Test
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
java中的实体类时间格式化
2022-05-18 02:18:19
![](https://img.aspxhome.com/file/2023/3/63393_0s.png)
详解Java的MyBatis框架和Spring框架的整合运用
2022-09-19 19:22:20
Intellij Idea修改代码方法参数自动提示快捷键的操作
2022-11-19 08:08:37
![](https://img.aspxhome.com/file/2023/8/75748_0s.jpg)
flutter实现扫码枪获取数据源禁止系统键盘弹窗示例详解
2023-07-23 01:52:41
![](https://img.aspxhome.com/file/2023/0/96760_0s.webp)
RabbitMQ开启SSL与SpringBoot连接测试的配置方法
2023-09-25 14:40:30
![](https://img.aspxhome.com/file/2023/1/67671_0s.png)
Java Iterator迭代器_动力节点Java学院整理
2022-11-08 13:50:39
SpringBoot实现接口等幂次校验的示例代码
2022-01-21 10:49:00
Java中this和super的区别及this能否调用到父类使用
2023-01-05 12:03:13
![](https://img.aspxhome.com/file/2023/6/61876_0s.webp)
C#判断字符串中是否包含指定字符串及contains与indexof方法效率问题
2022-07-06 19:04:51
![](https://img.aspxhome.com/file/2023/6/72466_0s.png)
简单了解java标识符的作用和命名规则
2022-06-18 17:49:09
![](https://img.aspxhome.com/file/2023/1/72601_0s.jpg)
Java如何实现压缩文件与解压缩zip文件
2022-01-28 09:14:00
![](https://img.aspxhome.com/file/2023/6/67496_0s.png)
SpringBoot整合Redis之编写RedisConfig
2023-08-29 02:35:57
实战SpringBoot集成JWT实现token验证
2022-10-07 15:57:49
![](https://img.aspxhome.com/file/2023/8/62138_0s.jpg)
java如何用Processing生成马赛克风格的图像
2023-11-07 20:52:44
![](https://img.aspxhome.com/file/2023/5/58555_0s.jpg)
详解Java实现缓存(LRU,FIFO)
2022-04-24 13:35:26
![](https://img.aspxhome.com/file/2023/1/64101_0s.png)
使用SpringBoot发送邮件的方法详解
2023-01-30 02:21:37
![](https://img.aspxhome.com/file/2023/7/73107_0s.webp)
java生成随机数的方法
2023-12-12 12:49:51
![](https://img.aspxhome.com/file/2023/4/65354_0s.jpg)
SpringBoot自动装配原理详解
2023-07-03 05:49:08
java队列实现方法(顺序队列,链式队列,循环队列)
2023-06-24 01:43:17
Spring4下validation数据校验无效(maven)的解决
2022-01-24 03:01:04