日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

单元测试代码:SpringTest+JUnit

發(fā)布時(shí)間:2023/12/19 javascript 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单元测试代码:SpringTest+JUnit 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

/*** JUnit單元測(cè)試父類,配置了Spring的基礎(chǔ)環(huán)境。 <br/>* 可以作為Controller、Service、Dao單元測(cè)試的父類。* * @author leiwen@fansunion.cn*/ public class JUnitTestBase {public static XmlWebApplicationContext context = null;private static HandlerMapping handlerMapping;private static HandlerAdapter handlerAdapter;// /public static String[] CONFIG_FILES = { "classpath:spring-*.xml" };// public static String[] configs = { "file:src/main/resources/spring-*.xml"// };public static String[] CONFIG_FILES = { "file:src/main/resources/spring-*.xml" };/*** 讀取spring配置文件,初始化上下文。*/@BeforeClasspublic static void setUp() {System.out.println("Test start...");context = new XmlWebApplicationContext();context.setConfigLocations(CONFIG_FILES);MockServletContext msc = new MockServletContext();context.setServletContext(msc);context.refresh();msc.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,context);handlerMapping = (HandlerMapping) context.getBean(DefaultAnnotationHandlerMapping.class);handlerAdapter = (HandlerAdapter) context.getBean(context.getBeanNamesForType(AnnotationMethodHandlerAdapter.class)[0]);}// 執(zhí)行request對(duì)象請(qǐng)求的actionpublic ModelAndView excuteAction(HttpServletRequest request,HttpServletResponse response) throws Exception {// 這里需要聲明request的實(shí)際類型,否則會(huì)報(bào)錯(cuò)request.setAttribute(HandlerMapping.INTROSPECT_TYPE_LEVEL_MAPPING, true);HandlerExecutionChain chain = handlerMapping.getHandler(request);Object handler = chain.getHandler();final ModelAndView model = handlerAdapter.handle(request, response,handler);return model;}@AfterClasspublic static void tearUp() {System.out.println("Test end!");}}//測(cè)試Controller的2種方法/*** CampaignGroupController單元測(cè)試。* * @author leiwen@fansunion.cn*/ public class FansUnionControllerTestextends JUnitTestBase {@Testpublic void prevAddCampaignGroup() throws Exception {MockHttpServletRequest request = new MockHttpServletRequest();MockHttpServletResponse response = new MockHttpServletResponse();String requestURI = "/campaignGroup/prevAdd";request.setRequestURI(requestURI);request.setMethod("POST");final ModelAndView mav = this.excuteAction(request, response);Assert.assertEquals("createCampaignGroup", mav.getViewName());}@Testpublic void prevAddCampaignGroup2() throws Exception {CampaignGroupController userController = context.getBean(CampaignGroupController.class);MockMvc mockMvc = MockMvcBuilders.standaloneSetup(userController).build();ResultActions perform = mockMvc.perform(MockMvcRequestBuilders.post("/campaignGroup/prevAdd"));ResultActions andExpect = perform.andExpect(MockMvcResultMatchers.status().is(200));andExpect.andExpect(MockMvcResultMatchers.view().name("createCampaignGroup"));}}----需要配置2個(gè)bean,測(cè)試Controller需要用到<beanclass="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean><beanclass="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean>測(cè)試Service(Dao類似)/*** 這種方式 的單元測(cè)試,不需要重復(fù)指定 資源文件,減少重復(fù)。 麻煩的地方在于,需要手動(dòng)獲取bean。* * @author leiwen@fansunion.cn*/ public class FansUnionServiceTest extends JUnitTestBase {private static CampaignGroupService campaignGroupService = context.getBean(CampaignGroupService.class);// 測(cè)試add,remove,update方法的時(shí)候,已經(jīng)測(cè)試了find?@Testpublic void addCampaignGroup() {CampaignGroup cg = buildOneGroup();campaignGroupService.add(cg);CampaignGroup dbCampaignGroup = campaignGroupService.find(cg.getId());Assert.assertEquals(cg, dbCampaignGroup);campaignGroupService.delete(cg.getId());}基于注解的測(cè)試/*** * 基于注解的單元測(cè)試。* * @author leiwen@fansunion.cn*/ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "classpath:spring-mvc-context.xml","classpath:spring-common-context.xml" }) public class FansUnionServiceTestWithAnnotation {@Autowiredprivate CampaignGroupService campaignGroupService;/*** 根據(jù)campaignId獲取campaignGroup的name集合<br>* 測(cè)試場(chǎng)景:<br>* */@Testpublic void testListCampaignGroupNameByCampaignId(){System.out.println("**********");System.out.println(campaignGroupService.listCampaignGroupNameByCampaignId(1005899));}}

參考資料:http://lohasle.iteye.com/blog/1617929

http://jiuyuehe.iteye.com/blog/1882424

?

?

?

轉(zhuǎn)載于:https://my.oschina.net/jiutianniao/blog/400245

總結(jié)

以上是生活随笔為你收集整理的单元测试代码:SpringTest+JUnit的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。