Java Config下的Spring Test幾種方式實例詳解
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的話,并不會真正的去執(zhí)行數(shù)據(jù)庫的操作。
還有一種用法是@Spy,暫時不了解具體使用方式,待研究。
相比之下,還是spring-test標準一些。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
Spring?Boot?+?Mybatis?Plus實現(xiàn)樹狀菜單的方法
這篇文章主要介紹了Spring?Boot?+?Mybatis?Plus實現(xiàn)樹狀菜單,包括實體類中添加子菜單列表和集合及構建菜單樹的詳細代碼,代碼簡單易懂,需要的朋友可以參考下2021-12-12
springsecurity實現(xiàn)登錄驗證以及根據(jù)用戶身份跳轉不同頁面
Spring?Security是一種基于Spring框架的安全技術,用于實現(xiàn)身份驗證和訪問控制,本文介紹了如何使用Spring?Security,結合session和redis來存儲用戶信息,并通過編寫特定的登錄處理類和Web配置,實現(xiàn)用戶登錄和注銷功能2024-09-09
InputStreamReader 和FileReader的區(qū)別及InputStream和Reader的區(qū)別
這篇文章主要介紹了InputStreamReader 和FileReader的區(qū)別及InputStream和Reader的區(qū)別的相關資料,需要的朋友可以參考下2015-12-12
Springboot中基于X509完成SSL檢驗的原理與實現(xiàn)
本文詳細解析了HTTPS通信中SSL證書的作用和原理,SSL證書建立在客戶端和服務器之間的安全通道,確保數(shù)據(jù)傳輸?shù)耐暾院捅C苄?詳細的介紹了Springboot中基于X509完成SSL檢驗的原理與實現(xiàn),感興趣的可以了解一下2024-09-09
java+selenium實現(xiàn)自動化打開頁面的方法
今天小編就為大家分享一篇java+selenium實現(xiàn)自動化打開頁面的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
在windows下揪出java程序占用cpu很高的線程并完美解決
這篇文章主要介紹了在windows下揪出java程序占用cpu很高的線程并完美解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01

