办公类网站开发背景,在哪个网站可以学做甜点,站长工具综合查询,网站开发软件排行榜2019独角兽企业重金招聘Python工程师标准 /*** JUnit单元测试父类#xff0c;配置了Spring的基础环境。 br/* 可以作为Controller、Service、Dao单元测试的父类。* * author leiwenfansunion.cn*/
public class JUnitTestBase {public static XmlWebApp… 2019独角兽企业重金招聘Python工程师标准 /*** JUnit单元测试父类配置了Spring的基础环境。 br/* 可以作为Controller、Service、Dao单元测试的父类。* * author leiwenfansunion.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]);}// 执行request对象请求的actionpublic ModelAndView excuteAction(HttpServletRequest request,HttpServletResponse response) throws Exception {// 这里需要声明request的实际类型否则会报错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!);}}//测试Controller的2种方法/*** CampaignGroupController单元测试。* * author leiwenfansunion.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个bean测试Controller需要用到beanclassorg.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping/beanbeanclassorg.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter/bean测试Service(Dao类似)/*** 这种方式 的单元测试不需要重复指定 资源文件减少重复。 麻烦的地方在于需要手动获取bean。* * author leiwenfansunion.cn*/
public class FansUnionServiceTest extends JUnitTestBase {private static CampaignGroupService campaignGroupService context.getBean(CampaignGroupService.class);// 测试add,remove,update方法的时候已经测试了findTestpublic void addCampaignGroup() {CampaignGroup cg buildOneGroup();campaignGroupService.add(cg);CampaignGroup dbCampaignGroup campaignGroupService.find(cg.getId());Assert.assertEquals(cg, dbCampaignGroup);campaignGroupService.delete(cg.getId());}基于注解的测试/*** * 基于注解的单元测试。* * author leiwenfansunion.cn*/
RunWith(SpringJUnit4ClassRunner.class)
ContextConfiguration(locations { classpath:spring-mvc-context.xml,classpath:spring-common-context.xml })
public class FansUnionServiceTestWithAnnotation {Autowiredprivate CampaignGroupService campaignGroupService;/*** 根据campaignId获取campaignGroup的name集合br* 测试场景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 转载于:https://my.oschina.net/jiutianniao/blog/400245