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
需要引入相應(yīng)包:
<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標(biāo)準(zhǔn)一些。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- JavaEE開發(fā)之SpringMVC中的自定義消息轉(zhuǎn)換器與文件上傳
- Java事務(wù)管理學(xué)習(xí)之Spring和Hibernate詳解
- Spring 4 支持的 Java 8 特性
- Java中SpringSecurity密碼錯誤5次鎖定用戶的實現(xiàn)方法
- java web SpringMVC后端傳json數(shù)據(jù)到前端頁面實例代碼
- 詳解Spring Boot 使用Java代碼創(chuàng)建Bean并注冊到Spring中
- java Quartz定時器任務(wù)與Spring task定時的幾種實現(xiàn)方法
- Java中spring讀取配置文件的幾種方法示例
相關(guān)文章
Spring?Boot?+?Mybatis?Plus實現(xiàn)樹狀菜單的方法
這篇文章主要介紹了Spring?Boot?+?Mybatis?Plus實現(xiàn)樹狀菜單,包括實體類中添加子菜單列表和集合及構(gòu)建菜單樹的詳細(xì)代碼,代碼簡單易懂,需要的朋友可以參考下2021-12-12springsecurity實現(xiàn)登錄驗證以及根據(jù)用戶身份跳轉(zhuǎn)不同頁面
Spring?Security是一種基于Spring框架的安全技術(shù),用于實現(xiàn)身份驗證和訪問控制,本文介紹了如何使用Spring?Security,結(jié)合session和redis來存儲用戶信息,并通過編寫特定的登錄處理類和Web配置,實現(xiàn)用戶登錄和注銷功能2024-09-09InputStreamReader 和FileReader的區(qū)別及InputStream和Reader的區(qū)別
這篇文章主要介紹了InputStreamReader 和FileReader的區(qū)別及InputStream和Reader的區(qū)別的相關(guān)資料,需要的朋友可以參考下2015-12-12Springboot中基于X509完成SSL檢驗的原理與實現(xiàn)
本文詳細(xì)解析了HTTPS通信中SSL證書的作用和原理,SSL證書建立在客戶端和服務(wù)器之間的安全通道,確保數(shù)據(jù)傳輸?shù)耐暾院捅C苄?詳細(xì)的介紹了Springboot中基于X509完成SSL檢驗的原理與實現(xiàn),感興趣的可以了解一下2024-09-09java+selenium實現(xiàn)自動化打開頁面的方法
今天小編就為大家分享一篇java+selenium實現(xiàn)自動化打開頁面的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05在windows下揪出java程序占用cpu很高的線程并完美解決
這篇文章主要介紹了在windows下揪出java程序占用cpu很高的線程并完美解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01