亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
單元測試代碼:SpringTest+JUnit
作者:網絡轉載 發布時間:[ 2013/12/13 11:18:57 ] 推薦標簽:

<pre class="java" name="code">/**
* JUnit單元測試父類,配置了Spring的基礎環境。 <br/>
* 可以作為Controller、Service、Dao單元測試的父類。
*
* @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配置文件,初始化上下文。
*/
@BeforeClass
public 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對象請求的action
public 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;
}
@AfterClass
public static void tearUp() {
System.out.println("Test end!");
}
}
//測試Controller的2種方法
/**
* CampaignGroupController單元測試。
*
* @author leiwen@fansunion.cn
*/
public class FansUnionControllerTestextends JUnitTestBase {
@Test
public 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());
}
@Test
public 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需要用到
<bean
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
</bean>
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
</bean>
測試Service(Dao類似)
/**
* 這種方式 的單元測試,不需要重復指定 資源文件,減少重復。 麻煩的地方在于,需要手動獲取bean。
*
* @author leiwen@fansunion.cn
*/
public class FansUnionServiceTest extends JUnitTestBase {
private static CampaignGroupService campaignGroupService = context
.getBean(CampaignGroupService.class);
// 測試add,remove,update方法的時候,已經測試了find?
@Test
public void addCampaignGroup() {
CampaignGroup cg = buildOneGroup();
campaignGroupService.add(cg);
CampaignGroup dbCampaignGroup = campaignGroupService.find(cg.getId());
Assert.assertEquals(cg, dbCampaignGroup);
campaignGroupService.delete(cg.getId());
}
基于注解的測試
/**
*
* 基于注解的單元測試。
*
* @author leiwen@fansunion.cn
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:spring-mvc-context.xml",
"classpath:spring-common-context.xml" })
public class FansUnionServiceTestWithAnnotation {
@Autowired
private CampaignGroupService campaignGroupService;
/**
* 根據campaignId獲取campaignGroup的name集合<br>
* 測試場景:<br>
*
*/
@Test
public void testListCampaignGroupNameByCampaignId(){
System.out.println("**********");
System.out.println(campaignGroupService.listCampaignGroupNameByCampaignId(1005899));
}
}

軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 最新精品亚洲成a人在线观看 | 一级毛片高清免费播放 | 男女日批在线观看 | 91精品啪在线观看国产老湿机 | 国产精品页| 亚洲综合激情小说 | 午夜影院404| 色老头在线视频 | 激情五月宗合网 | 国产无卡一级毛片aaa | 在线观看成人小视频 | 成年人免费在线观看 | 钻石午夜影院 | 亚洲第一成年免费网站 | 在线有码 | 成人午夜小视频 | 亚洲片在线 | 日韩亚洲一区中文字幕 | 好男人www社区影视在线 | 亚洲第一免费 | 福利免费看 | 国产黄色大全 | 午夜免费视频观看在线播放 | 天天射天天做 | 欧美色成人 | 黄色一级片在线播放 | 在线观看免费a∨网站 | 日韩一级黄色录像 | 国产无套粉嫩白浆在线精品 | 日本在线视频二区 | 高h辣h双处全是肉一对一 | 99在线国产视频 | 国内精品免费一区二区观看 | 亚洲va欧美va国产综合久久 | 殴美在线| 18岁免费网站| 日韩h视频 | 波多野结衣一区二区三区四区 | 综合五月天堂 | 日本一区二区三区在线看 | 亚洲高清免费视频 |