freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

自動化測試異常處理與用例管理(編輯修改稿)

2025-04-22 03:33 本頁面
 

【文章內(nèi)容簡介】 n響應(yīng)請求 二、通過Error View顯示錯誤消息 三、自動創(chuàng)建JsonResult響應(yīng)Ajax請求一、通過指定HandleErrorAction響應(yīng)請求在正式介紹如何通過擴展實現(xiàn)與EntLib以實現(xiàn)自動化異常處理之前,我們不妨先來體驗一下異常處理具有怎樣的“自動化”特性。以用戶登錄場景為例,我們在通過Visual MVC項目模板創(chuàng)建的Web應(yīng)用中定義了如下一個簡單的數(shù)據(jù)類型LoginInfo封裝用戶登錄需要輸入的用戶名和密碼。 1: public class LoginInfo 2: { 3: [DisplayName(用戶名)] 4: [Required(ErrorMessage=請輸入{0})] 5: public string UserName { get。 set。 } 6: 7: [DisplayName(密碼)] 8: [Required(ErrorMessage = 請輸入{0})] 9: [DataType()] 10: public string Password { get。 set。 } 11: }然后我們定義了如下一個HomeController。基于HTTPGET的Action方法Index將會呈現(xiàn)一個用戶登錄View,該View使用創(chuàng)建的LoginInfo對象作為其Model。真正的用戶驗證邏輯定義在另一個應(yīng)用了HttpPostAttrubute特性的Index方法中:如果用戶名不為Foo,拋出InvalidUserNameException異常;如果密碼不是“password”,則拋出InvalidPasswordException異常。InvalidUserNameException和InvalidPasswordException是我們自定義的兩種異常類型。 1: [ExceptionPolicy(defaultPolicy)] 2: public class HomeController : ExtendedController 3: { 4: public ActionResult Index() 5: { 6: return View(new LoginInfo())。 7: } 8: 9: [HttpPost] 10: [HandleErrorAction(OnIndexError)] 11: public ActionResult Index(LoginInfo loginInfo) 12: { 13: if ((, foo, true) != 0) 14: { 15: throw new InvalidUserNameException()。 16: } 17: 18: if ( != password) 19: { 20: throw new InvalidPasswordException()。 21: } 22: return View(loginInfo)。 23: } 24: 25: [HttpPost] 26: public ActionResult OnIndexError(LoginInfo loginInfo) 27: { 28: return View(loginInfo)。 29: } 30: }上面定義的HomeController具有三點與自動化異常處理相關(guān)的地方: HomeController繼承自自定義的基類ExtendedController,后者完成了對異常的自動化處理。 HomeController類型上應(yīng)用了自定義的ExceptionPolicyAttribute特性用于指定默認(rèn)采用的異常處理策略名稱(“defaultPolicy”)。 基于HTTPPOST的Index方法上應(yīng)用了HandleErrorActionAttribute特性用于指定一個HandleErrorAction名稱,當(dāng)異常在目標(biāo)Action執(zhí)行過程中拋出并通過EHAB處理后,指定的Action會被執(zhí)行以實現(xiàn)對請求的響應(yīng)。對于我們的例子來說,從Index方法拋出的異常被處理后會調(diào)用OnIndexError方法作為對當(dāng)前請求的響應(yīng)。 下面是代表登錄頁面的View的定義,這是一個Model類型為LoginInfo的強類型View。在該View中,作為Model的LoginInfo對象以編輯默認(rèn)呈現(xiàn)在一個表單中,表單中提供了一個“登錄”提交表單。除此之外,View中還具有個ValidationSummary。 1: @model LoginInfo 2: html 3: head 4: title用戶登錄/title 5: style type=text/css 6: .validationsummaryerrors{color:Red} 7: /style 8: /head 9: body 10: @using (()) 11: { 12: @(true) 13: @() 14: input type=submit value=登錄 / 15: } 16: /body 17: /html通過HomeController的定義我們知道兩種不同類型的異常(InvalidUserNameException和InvalidPasswordException)分別在輸入無效用戶名和密碼是被拋出來,而我們需要處理的就是這兩種類型的異常。正對它們的異常處理策略定義在如下的配置中,策略名稱就是通過應(yīng)用在HomeController上的ExceptionPolicyAttribute特性指定的“defaultPolicy”。 1: configuration 2: configSections 3: section name=exceptionHandling 4: type=, / 5: /configSections 6: exceptionHandling 7: exceptionPolicies 8: add name=defaultPolicy 9: exceptionTypes 10: add type=, MvcApp postHandlingAction=ThrowNewException name=InvalidUserNameException 11: exceptionHandlers 12: add name =ErrorMessageHandler type=, MvcApp errorMessage=用戶名不存在/ 13: /exceptionHandlers 14: /add 15: 16: add type=, MvcApp postHandlingAction=ThrowNewException name=InvalidPasswordException 17: exceptionHandlers 18: add name =ErrorMessageHandler type=, MvcApp errorMessage=密碼與用戶名不匹配/ 19: /exceptionHandlers 20: /add 21: /exceptionTypes 22: /add 23: /exceptionPolicies 24: /exceptionHandling 25: ... 26: /configuration通過上面的這樣異常策略配置可以看到:我們使用一個自定義的名為ErrorMessageHandler的ExceptionHandler來處理拋出來的InvalidUserNameException和InvalidPasswordException異常,而ErrorMessageHandler僅僅是指定一個友好的
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1