Java數(shù)據(jù)庫(kù)應(yīng)用的測(cè)試方法_第1頁(yè)
Java數(shù)據(jù)庫(kù)應(yīng)用的測(cè)試方法_第2頁(yè)
Java數(shù)據(jù)庫(kù)應(yīng)用的測(cè)試方法_第3頁(yè)
Java數(shù)據(jù)庫(kù)應(yīng)用的測(cè)試方法_第4頁(yè)
Java數(shù)據(jù)庫(kù)應(yīng)用的測(cè)試方法_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Java數(shù)據(jù)庫(kù)應(yīng)用的測(cè)試方法1 文檔目的大部分的Java應(yīng)用都采用數(shù)據(jù)庫(kù)連接池,通過(guò)JNDI查找數(shù)據(jù)源的方式獲取連接進(jìn)行數(shù)據(jù)庫(kù)操作。在不啟動(dòng)應(yīng)用服務(wù)器的情況下,單元測(cè)試不能直接進(jìn)行。本文的目的就是解決這一問(wèn)題。2 測(cè)試要求要求一:無(wú)需啟動(dòng)應(yīng)用服務(wù)器。要求二:能夠?qū)I(yè)務(wù)邏輯(含數(shù)據(jù)庫(kù)操作)進(jìn)行單元測(cè)試。3 測(cè)試原則由于我們測(cè)試采用的是白盒單元測(cè)試,所以,我們的測(cè)試原則是:1. 準(zhǔn)備測(cè)試數(shù)據(jù)和預(yù)期結(jié)果2. 調(diào)用測(cè)試單元對(duì)測(cè)試數(shù)據(jù)進(jìn)行處理,得到處理結(jié)果3. 比較處理結(jié)果和預(yù)期結(jié)果是否匹配4 名詞解釋4.1 白盒測(cè)試白盒測(cè)試,也稱為結(jié)構(gòu)化測(cè)試、基于代碼的測(cè)試,是一種測(cè)試用例設(shè)計(jì)方法,它從程序的控制結(jié)構(gòu)

2、導(dǎo)出測(cè)試用例。4.2 單元測(cè)試單元測(cè)試,測(cè)試單元,也就是在寫代碼的過(guò)程中,對(duì)程序單元(一個(gè)類的方法、屬性,都可以是一個(gè)單元)進(jìn)行的一種測(cè)試。4.3 測(cè)試用例測(cè)試用例(Test Case)是為某個(gè)特殊目標(biāo)而編制的一組測(cè)試輸入、執(zhí)行條件以及預(yù)期結(jié)果,以便測(cè)試某個(gè)程序路徑或核實(shí)是否滿足某個(gè)特定需求。 測(cè)試用例(Test Case)目前沒(méi)有經(jīng)典的定義。比較通常的說(shuō)法是:指對(duì)一項(xiàng)特定的軟件產(chǎn)品進(jìn)行測(cè)試任務(wù)的描述,體現(xiàn)測(cè)試方案、方法、技術(shù)和策略。內(nèi)容包括測(cè)試目標(biāo)、測(cè)試環(huán)境、輸入數(shù)據(jù)、測(cè)試步驟、預(yù)期結(jié)果、測(cè)試腳本等,并形成文檔。5 選用的工具-Junit Test根據(jù)測(cè)試要求和開(kāi)發(fā)所使用的工具(Eclips

3、e)和語(yǔ)言(Java),我們使用Junit來(lái)作為測(cè)試工具。6 測(cè)試的對(duì)象和精度根據(jù)測(cè)試的要求,結(jié)合陽(yáng)光項(xiàng)目的實(shí)際環(huán)境,測(cè)試的對(duì)象是一個(gè)Facade類的某個(gè)方法或某個(gè)屬性。關(guān)于測(cè)試的精度,編寫測(cè)試用例的測(cè)試人員可以根據(jù)要求自己定義。7 使用測(cè)試工具進(jìn)行測(cè)試的好處1) 可以實(shí)現(xiàn)真正分層開(kāi)發(fā)。2) 不需要依賴和頻繁重啟Web Container。8 依賴的環(huán)境8.1 需要的環(huán)境Jar包1) commons-collections.jar2) commons-dbcp-1.2.1.jar3) commons-logging.jar4) commons-pool-1.3.jar5) fscontext.

4、jar6) providerutil.jar8.2 需要的JDBC驅(qū)動(dòng)Jar包對(duì)應(yīng)數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序jar包。如mysql需要mysql-connector-java-5.0.5-bin.Jar,oracle需要ojdbc.jar,Informix需要ifxjdbc.Jar。8.3 需要的Sysframework包需要sysframework中的類com.sinosoft.sysframework.test.DataSourceTestCase和com.sinosoft.sysframework.reference.DataSourceManager。其中DataSourceManager是工具

5、類,用于綁定JNDI數(shù)據(jù)源到當(dāng)前JVM。DataSourceTestCase內(nèi)部使用DataSourceManager類,作為所有數(shù)據(jù)庫(kù)應(yīng)用測(cè)試的基類。DataSourceTestCase要求在CLASSPATH中存在文件perties,DataSourceTestCase用此文件來(lái)配置。Tperties的配置內(nèi)容如下:KeyValue備注config.homeD:insDEMOmoduleswebappsdemoWEB-INFconfigConfig目錄的配置,使用Struts架構(gòu)的需要。demoDataSourceJNDI名稱jdbc.dri

6、verClassNamecom.mysql.jdbc.Driver驅(qū)動(dòng)程序名jdbc.urljdbc:mysql:/localhost:3306/identifier?useUnicode=true&characterEncoding=GBKURLjdbc.usernameroot數(shù)據(jù)庫(kù)用戶名jdbc.passwordmysql數(shù)據(jù)庫(kù)用戶密碼jdbc.maxActive5連接池的最大數(shù)據(jù)庫(kù)連接數(shù),可以沒(méi)有此項(xiàng)jdbc.maxWait5最大建立連接等待時(shí)間,可以沒(méi)有此項(xiàng)jdbc.maxIdle2最大空閑連接數(shù),可以沒(méi)有此項(xiàng)9 具體實(shí)施步驟9.1 確立測(cè)試單元確立測(cè)試單元的過(guò)程就是要準(zhǔn)備我

7、們都要測(cè)試哪些東西,由于我們的測(cè)試要求是要測(cè)試服務(wù)層,所以,從服務(wù)層向下的部分都是要分割的對(duì)象。分割的原則是盡量讓分割后的顆粒盡量減少與其他顆粒的耦合程度。9.1.1 第一步:商業(yè)子系統(tǒng)功能模塊劃分首先分割不同的業(yè)務(wù)系統(tǒng),比如,首先將整個(gè)系統(tǒng)按照核保核賠、理賠、從縱向上分成不同的子系統(tǒng),然后再?gòu)拿總€(gè)子系統(tǒng)中進(jìn)行更加細(xì)致的劃分,比如分割出理賠子系統(tǒng)之后,可以將該子系統(tǒng)繼續(xù)分割為報(bào)案處理、單證收集等功能模。其實(shí)就是根據(jù)登陸業(yè)務(wù)系統(tǒng)后左邊的菜單結(jié)構(gòu)進(jìn)行業(yè)務(wù)層面的功能劃分即可,劃分的粒度以菜單的葉子節(jié)點(diǎn)為精度即可。9.1.2 第二步:確定測(cè)試單元經(jīng)歷過(guò)第一步之后,我們已經(jīng)擁有了一個(gè)相對(duì)精確的一個(gè)測(cè)試對(duì)

8、象,但是這個(gè)對(duì)象對(duì)于我們的測(cè)試來(lái)說(shuō)還是太粗了,當(dāng)點(diǎn)擊葉子節(jié)點(diǎn)后,出現(xiàn)的頁(yè)面上可能有很多操作選項(xiàng),所以,我們還要對(duì)其進(jìn)行更細(xì)的劃分。以保費(fèi)計(jì)算為例:當(dāng)用戶在葉面上完成投保單的保費(fèi)的相關(guān)輸入項(xiàng)的填寫后,用戶可以點(diǎn)擊保費(fèi)計(jì)算或者點(diǎn)擊保存按鈕保存,這將調(diào)用兩個(gè)不同的后臺(tái)服務(wù),既然我們的測(cè)試目標(biāo)是以服務(wù)為準(zhǔn)的,那么我們的一個(gè)測(cè)試用例,就應(yīng)該對(duì)應(yīng)這樣一個(gè)調(diào)用后臺(tái)服務(wù)的這樣的一個(gè)用戶操作。9.2 編寫測(cè)試用例 Step By Step9.2.1 如何模擬web環(huán)境由于我們要測(cè)試的代碼是Struts結(jié)構(gòu)的,使用Junit對(duì)2006年上機(jī)培訓(xùn)試題進(jìn)行測(cè)試的主要問(wèn)題是如何模擬在沒(méi)有Web容器JNDI服務(wù)的時(shí)候建立

9、連接池和獲得DataSource。9.2.2 建立junit Test Case目前來(lái)看,一個(gè)Test Case 測(cè)試的就是一個(gè)Facade類(即便該類中有其他的服務(wù)類),而TestCase中每個(gè)測(cè)試方法針對(duì)該服務(wù)類中的一個(gè)方法。注意,盡管TestCase中的測(cè)試方法是針對(duì)每一個(gè)類中方法的,但是Junit并不會(huì)按照類中方法的調(diào)用關(guān)系去調(diào)用TestCase中的方法。這也就是說(shuō),在TestCase中的測(cè)試方法都是獨(dú)立的,互相沒(méi)有關(guān)聯(lián)。9.3 測(cè)試具體步驟參視頻。如果出現(xiàn)綠色則表示測(cè)試通過(guò)。assertEquals表示等于10 附件10.1 配置文件pertiesconfig.hom

10、e=D:insDEMOmoduleswebappsdemoWEB-INF=demoDataSourcejdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql:/localhost:3306/identifier?useUnicode=true&characterEncoding=GBKjdbc.username=rootjdbc.password=mysqljdbc.maxActive=5jdbc.maxWait=5jdbc.maxIdle=210.2 測(cè)試?yán)觩ackage com.sinosoft.demo.bl.facade;import com.sinosoft.sysframework.test.DataSourceTestCase;public class BLPrpDidentifierFacadeTest extends DataSourceTestCase public void testGetCount() BLPrpDidentifierFacade facade = new BLPrpDidentifierFacad

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論