国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種在mvc中使用測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的存儲(chǔ)庫(kù)模式的制作方法

      文檔序號(hào):6370218閱讀:290來(lái)源:國(guó)知局
      專利名稱:一種在mvc 中使用測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的存儲(chǔ)庫(kù)模式的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及ー種使用測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(TDD)的方法,具體涉及ー種在MVC中使用測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的存儲(chǔ)庫(kù)模式。
      背景技術(shù)
      目前在MVC的単元測(cè)試中,對(duì)控制器方法進(jìn)行單元測(cè)試時(shí),涉及到調(diào)用數(shù)據(jù)訪問(wèn)的添加、修改、刪除、查詢時(shí),往往需要真實(shí)的數(shù)據(jù)庫(kù)服務(wù)器支持,才能正常運(yùn)行單元測(cè)試代碼。通過(guò)對(duì)以往単元測(cè)試的分析,發(fā)現(xiàn)存在著諸多不便實(shí)現(xiàn)的問(wèn)題。其具體問(wèn)題包括
      1、首先執(zhí)行單元測(cè)試時(shí),需要真實(shí)的數(shù)據(jù)庫(kù)服務(wù)器支持;
      2、編輯和刪除數(shù)據(jù)的單元測(cè)試將更改數(shù)據(jù)庫(kù)的狀態(tài),這就需要每ー輪的単元測(cè)試都具有干凈的數(shù)據(jù)庫(kù)環(huán)境;
      3、在對(duì)控制器方法進(jìn)行單元測(cè)試時(shí),如果被測(cè)試方法中需要調(diào)用另一個(gè)類中的某個(gè)方法,并且需要獲得該方法的返回值,才能正確執(zhí)行。如果被調(diào)用的方法由于某種原因沒(méi)有開(kāi)發(fā)完成,在這種情況下,要想對(duì)此方法進(jìn)行測(cè)試,只能等待被調(diào)用類開(kāi)發(fā)完成。

      發(fā)明內(nèi)容
      發(fā)明提供了ー種在MVC中使用測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的存儲(chǔ)庫(kù)模式,目的在于解決單元測(cè)試對(duì)真實(shí)數(shù)據(jù)庫(kù)和其他外部組件的依賴,提供ー種新型的臨時(shí)的存儲(chǔ)庫(kù)模式,更大的優(yōu)化單元測(cè)試的靈活性、可測(cè)試性。樣處理廠的告知系統(tǒng)為實(shí)現(xiàn)上述技術(shù)目的,達(dá)到上述技術(shù)效果,本發(fā)明通過(guò)以下技術(shù)方案實(shí)現(xiàn)
      ー種在MVC中使用測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的存儲(chǔ)庫(kù)模式,其特征在于,包括以下步驟
      步驟I)添加存儲(chǔ)庫(kù),定義一個(gè)訪問(wèn)數(shù)據(jù)庫(kù)的接ロ ;
      步驟2)創(chuàng)建測(cè)試驅(qū)動(dòng),實(shí)現(xiàn)mock存儲(chǔ)庫(kù);
      步驟3)添加測(cè)試類支持,在目標(biāo)測(cè)試類中定義兩個(gè)構(gòu)造函數(shù);
      第一個(gè)構(gòu)造函數(shù)是無(wú)參數(shù)構(gòu)造函數(shù),第二個(gè)構(gòu)造函數(shù)采用了 IContactRepository類型的參數(shù),所述第二個(gè)構(gòu)造函數(shù)將由單元測(cè)試傳入所述mock存儲(chǔ)庫(kù);所述第一個(gè)構(gòu)造函數(shù)將創(chuàng)建EF_ContactR印ository類的實(shí)例,當(dāng)調(diào)用控制器中的操作方法吋,MVC管道將調(diào)用所述第一個(gè)構(gòu)造函數(shù);
      步驟4)添加測(cè)試,在所述測(cè)試類中編寫(xiě)測(cè)試方法,調(diào)用所述第二個(gè)構(gòu)造函數(shù)。本發(fā)明的原理是
      本發(fā)明使用具有MVC和TDD的存儲(chǔ)庫(kù)模式,需要測(cè)試人員為數(shù)據(jù)訪問(wèn)類創(chuàng)建接ロ;對(duì)控制器方法進(jìn)行單元測(cè)試時(shí),可根據(jù)接ロ實(shí)例化mock存儲(chǔ)庫(kù),去模擬實(shí)際運(yùn)行過(guò)程中的對(duì)數(shù)據(jù)的添加、修改、刪除、查詢。采用MVC的TDD的原則之ー是,每個(gè)測(cè)試應(yīng)驅(qū)動(dòng)操作方法中的ー個(gè)特定要求,測(cè)試不應(yīng)驗(yàn)證數(shù)據(jù)庫(kù)或其他組件(盡量把這些組件放在數(shù)據(jù)訪問(wèn)的単元測(cè)試和集成測(cè)試中進(jìn)行測(cè)試)。本發(fā)明的有益效果是
      1、執(zhí)行單元測(cè)試時(shí),不需要真實(shí)的數(shù)據(jù)庫(kù)服務(wù)器;
      2、編輯和刪除數(shù)據(jù)的單元測(cè)試,不需要在執(zhí)行每一輪單元測(cè)試時(shí),準(zhǔn)備干凈的數(shù)據(jù)庫(kù)環(huán)境;
      3、為單元測(cè)試提供了替換點(diǎn),可以輕松地測(cè)試業(yè)務(wù)邏輯而無(wú)需數(shù)據(jù)庫(kù)和其他外部依賴項(xiàng)。


      圖I為本發(fā)明的流程圖。
      具體實(shí)施例方式下面將參考附圖并結(jié)合實(shí)施例,來(lái)詳細(xì)說(shuō)明本發(fā)明。參見(jiàn)圖I所示,ー種在MVC中使用測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的存儲(chǔ)庫(kù)模式,包括以下步驟 步驟I)添加存儲(chǔ)庫(kù)
      使用具有MVC和測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(TDD)的存儲(chǔ)庫(kù)模式,需要測(cè)試人員為數(shù)據(jù)訪問(wèn)類創(chuàng)建接ロ。對(duì)控制器方法進(jìn)行單元測(cè)試吋,可根據(jù)接ロ實(shí)例化mock存儲(chǔ)庫(kù),去模擬實(shí)際運(yùn)行過(guò)程中的對(duì)數(shù)據(jù)的添加、修改、刪除、查詢。定義ー個(gè)訪問(wèn)數(shù)據(jù)庫(kù)的接ロ
      1.publicinterface 丄しontactRepository
      2.{
      3.void CreateNewContact(しontact contactioireatej;
      4.void DeleteContact unt id);
      5.Contact GetContactByID(int id);
      6.IEnumerabIe<Contact> GetAllContacts();
      7.int SaveChanges ();
      8.}
      步驟2)創(chuàng)建測(cè)試驅(qū)動(dòng),實(shí)現(xiàn)mock存儲(chǔ)庫(kù)
      1.class InMemoryContactReposit ory : IContactRepository
      2.{
      3.private List<Contact> —db = new List<Contact> ();
      4.public Exception ExceptionToThrow { get; set; }
      5.public void SaveChanges(Contact contactToUpdate) {}
      6.public void Add (Contact contactToAdd) {}
      7.public Contact GetContactByID(int id) {} 8.public void CreateNewContact(Contact contactToCreate) {}public int SaveChanges () {}
      9.public IEnumerabIe<Contact> GetAllContacts() {}
      10.public void DeleteContact(int id) {}
      11.I
      步驟3)添加測(cè)試支持,在目標(biāo)測(cè)試類中定義兩個(gè)構(gòu)造函數(shù)
      1.public HomeController() this (,new EF_ContactRepository ()) { }
      2.publicHomeController(IContactRepository repository)
      3.{
      4.—repository = repository;
      5.}
      一個(gè)是無(wú)參數(shù)構(gòu)造函數(shù);另ー個(gè)構(gòu)造函數(shù)采用了 IContactRepository類型的參數(shù),該構(gòu)造函數(shù)將由單元測(cè)試傳入mock存儲(chǔ)庫(kù)。無(wú)參數(shù)構(gòu)造函數(shù)將創(chuàng)建EF_ContactRepository類的實(shí)例,當(dāng)調(diào)用控制器中的操作方法時(shí),MVC管道將調(diào)用該構(gòu)造函數(shù)。步驟4)添加測(cè)試
      采用MVC的TDD的原則之ー是,每個(gè)測(cè)試應(yīng)驅(qū)動(dòng)操作方法中的ー個(gè)特定要求,測(cè)試不應(yīng)驗(yàn)證數(shù)據(jù)庫(kù)或其他組件(盡量把這些組件放在數(shù)據(jù)訪問(wèn)的単元測(cè)試和集成測(cè)試中進(jìn)行測(cè)試)。

      在測(cè)試類中編寫(xiě)測(cè)試方法,調(diào)用被測(cè)試類的有參構(gòu)造函數(shù)(采用了IContactRepository 類型的參數(shù))。I.private static HomeController GetHomeControl丄er(IContactRepositoryrepository)
      編寫(xiě)測(cè)試方法
      1.[TestMethod]
      2.public void CreateTest O 卜·}
      綜上所述,采用MVC的TDD為單元測(cè)試提供了替換點(diǎn),測(cè)試人員可以輕松地測(cè)試業(yè)務(wù)邏輯,而無(wú)需數(shù)據(jù)庫(kù)和其他外部依賴項(xiàng)。上述實(shí)施例只是為了說(shuō)明本發(fā)明的技術(shù)構(gòu)思及特點(diǎn),其目的是在于讓本領(lǐng)域內(nèi)的普通技術(shù)人員能夠了解本發(fā)明的內(nèi)容并據(jù)以實(shí)施,并不能以此限制本發(fā)明的保護(hù)范圍。凡是根據(jù)本發(fā)明內(nèi)容的實(shí)質(zhì)所作出的等效的變化或修飾,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍內(nèi)。
      權(quán)利要求
      1.ー種在MVC中使用測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的存儲(chǔ)庫(kù)模式,其特征在于,包括以下步驟 步驟I)添加存儲(chǔ)庫(kù),定義一個(gè)訪問(wèn)數(shù)據(jù)庫(kù)的接ロ ; 步驟2)創(chuàng)建測(cè)試驅(qū)動(dòng),實(shí)現(xiàn)mock存儲(chǔ)庫(kù); 步驟3)添加測(cè)試類支持,在目標(biāo)測(cè)試類中定義兩個(gè)構(gòu)造函數(shù); 第一個(gè)構(gòu)造函數(shù)是無(wú)參數(shù)構(gòu)造函數(shù),第二個(gè)構(gòu)造函數(shù)采用了 IContactRepository類型的參數(shù),所述第二個(gè)構(gòu)造函數(shù)將由單元測(cè)試傳入所述mock存儲(chǔ)庫(kù);所述第一個(gè)構(gòu)造函數(shù)將創(chuàng)建EF_ContactR印ository類的實(shí)例,當(dāng)調(diào)用控制器中的操作方法吋,MVC管道將調(diào)用所述第一個(gè)構(gòu)造函數(shù); 步驟4)添加測(cè)試,在所述測(cè)試類中編寫(xiě)測(cè)試方法,調(diào)用所述第二個(gè)構(gòu)造函數(shù)。
      全文摘要
      本發(fā)明公開(kāi)了一種在MVC中使用測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的存儲(chǔ)庫(kù)模式,使用具有MVC和測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的存儲(chǔ)庫(kù)模式,需要測(cè)試人員為數(shù)據(jù)訪問(wèn)類創(chuàng)建接口;對(duì)控制器方法進(jìn)行單元測(cè)試時(shí),可根據(jù)接口實(shí)例化mock存儲(chǔ)庫(kù),去模擬實(shí)際運(yùn)行過(guò)程中的對(duì)數(shù)據(jù)的添加、修改、刪除、查詢。該發(fā)明執(zhí)行單元測(cè)試時(shí),不需要真實(shí)的數(shù)據(jù)庫(kù)服務(wù)器;編輯和刪除數(shù)據(jù)的單元測(cè)試,不需要在執(zhí)行每一輪單元測(cè)試時(shí),準(zhǔn)備干凈的數(shù)據(jù)庫(kù)環(huán)境;為單元測(cè)試提供了替換點(diǎn),可以輕松地測(cè)試業(yè)務(wù)邏輯而無(wú)需數(shù)據(jù)庫(kù)和其他外部依賴項(xiàng)。
      文檔編號(hào)G06F11/36GK102693182SQ20121016471
      公開(kāi)日2012年9月26日 申請(qǐng)日期2012年5月25日 優(yōu)先權(quán)日2012年5月25日
      發(fā)明者張吉英, 易川, 李德逸, 董陽(yáng) 申請(qǐng)人:蘇州博遠(yuǎn)容天信息科技有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1