這就是相對(duì)路徑
成都創(chuàng)新互聯(lián)公司作為成都網(wǎng)站建設(shè)公司,專注網(wǎng)站建設(shè)公司、網(wǎng)站設(shè)計(jì),有關(guān)企業(yè)網(wǎng)站制作方案、改版、費(fèi)用等問題,行業(yè)涉及三輪攪拌車等多個(gè)領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。
指的是相對(duì)于工程文件的位置而言
在eclipse的結(jié)構(gòu)圖中的位置
在windows的文件夾里的位置
在查看屬性里的絕對(duì)路徑的位置
代碼來找文件路徑
public?class?Test?{
public?static?void?main(String[]?args)?throws?Exception?{
System.out.println("當(dāng)前目錄的路徑\t"+new?File(".").getCanonicalPath());//?"."表示當(dāng)前目錄
File?file?=?new?File("Buffered.txt");
if(!file.exists()){//如果不存在,就新建該文件
file.createNewFile();
}
System.out.println("Buffered.txt的絕對(duì)路徑\t"+file.getCanonicalPath());
System.out.println("Buffered.txt的相對(duì)路徑\t"+file.getPath());
}
}
輸出
當(dāng)前目錄的路徑 D:\space\workspace\Demo
Buffered.txt的絕對(duì)路徑 D:\space\workspace\Demo\Buffered.txt
Buffered.txt的相對(duì)路徑 Buffered.txt
path輸入修改為絕對(duì)路徑就行了,用相對(duì)路徑要看運(yùn)行時(shí)所在的路徑對(duì)不對(duì),肯定有問題的。
src\ftplog\2014-09-30.txt可以修改為src所在的目錄\src\ftplog\2014-09-30.txt
String path = "src/"+logPath+date+".txt";這一段改成絕對(duì)路徑就ok。
你這說的太籠統(tǒng)了,應(yīng)該具體些。
有了Java代碼之后
1、可以在代碼中寫些測試的方法,把你想要驗(yàn)證的東西,輸出看一下。
2、可以用Debug的形式,跟蹤代碼執(zhí)行,驗(yàn)證程序的邏輯是否正確。
3、利用JUnit寫斷言,測試結(jié)果
軟件的測試方法很多,不同的出發(fā)點(diǎn)得到不同的測試方法。有:
?從測試過程來分:靜態(tài)分析法、動(dòng)態(tài)測試法;
?從觀察結(jié)構(gòu)的透明性方式來分:白盒法、黑盒法、灰盒法;
?從獲得測試數(shù)據(jù)形式上分:窮盡法;等價(jià)類劃分法;邊界值分析法;
?從邏輯分析上分:因果圖法;錯(cuò)誤推測法;
?從測試步驟上分:單元測試、集成測試、確認(rèn)測試、系統(tǒng)測試等;
?從考察形式上分:功能測試,邏輯測試;? ? ? ? ? ?如何測試得更完全、怎樣進(jìn)行測試用例的設(shè)計(jì),是軟件測試中的關(guān)鍵技術(shù)。無論用哪種方法進(jìn)行測試,都是設(shè)法用較少的測試用例集合測試出程序中較多的潛在錯(cuò)誤。
靜態(tài)分析時(shí),不執(zhí)行程序,可對(duì)需求分析說明書、軟件設(shè)計(jì)說明書、源程序做結(jié)構(gòu)檢查、流圖分析、符號(hào)執(zhí)行來分析軟件可能導(dǎo)致的異常情況,找出軟件錯(cuò)誤。從測試過程來分:靜態(tài)分析法、動(dòng)態(tài)測試法;
結(jié)構(gòu)檢查是手工分析技術(shù),對(duì)需求說明、程序設(shè)計(jì)、編碼、測試工作進(jìn)行評(píng)議,虛擬地(模擬)執(zhí)行程序,在評(píng)議中發(fā)現(xiàn)和檢查錯(cuò)誤;
流圖分析是通過分析流程圖、代碼結(jié)構(gòu)來檢查程序錯(cuò)誤,便于進(jìn)行編碼分析和測試結(jié)果分析;
符號(hào)執(zhí)行是定義符號(hào)化數(shù)據(jù),為程序的每條路徑給出符號(hào)表達(dá)式,對(duì)特定路徑輸入符號(hào),經(jīng)處理輸出符號(hào),判斷程序的行為是否錯(cuò)誤,這種方法復(fù)雜,易出錯(cuò),較少使用。
灰盒法是白盒法和黑盒法相結(jié)合使用的方法,僅對(duì)重點(diǎn)路徑和程序段用白盒法測試,大部分用黑盒法進(jìn)行測試。
動(dòng)態(tài)測試是直接執(zhí)行程序進(jìn)行測試,包括功能測試、接口測試和結(jié)構(gòu)測試,觀察程序的行為,記錄執(zhí)行的結(jié)果,從執(zhí)行結(jié)果來分析程序可能出現(xiàn)的錯(cuò)誤;
有些人設(shè)想,不管使用那種測試方法,只要對(duì)每一種可能發(fā)生的情況都進(jìn)行測試,能正確通過,就可以得到完全正確的程序。
包含所有可能情況的測試稱為窮盡測試,實(shí)際上,通常不可能做到窮盡測試。因?yàn)楦鞣N輸入數(shù)據(jù)的排列組合情況往往多到無法實(shí)際測試完成的程度。如用黑盒法測試三個(gè)整數(shù)型的輸入數(shù)據(jù),如果每個(gè)整數(shù)是16位二進(jìn)制數(shù),則輸入數(shù)據(jù)有
216×216×216=248≈2.8×1014種排列組合。
如果每測試一次需要1毫秒,測試完畢這些排列組合的各種情況需要一萬年,另外還需測試不合法的輸入情況,實(shí)際上不可能窮盡所有組合情況。因此,一般的軟件測試是有限測試。
Alpha(α)測試:通用軟件產(chǎn)品為了征集用戶的意見,在開發(fā)者的場所,由用戶進(jìn)行的測試,記錄用戶發(fā)現(xiàn)的錯(cuò)誤和問題。
Beta(β)測試:在一個(gè)或多個(gè)用戶自己的場所,由最終用戶進(jìn)行,并記錄在測試中遇到的所有問題和想法。
重要的通用軟件產(chǎn)品,大多經(jīng)過α和β測試。
1、Jasmine
Jasmine是一個(gè)行為驅(qū)動(dòng)的測試開發(fā)框架,用于對(duì)JavaScript代碼進(jìn)行測試。它不依賴其它任何JavaScript框架,也不需要DOM。它的語法簡潔、明確,寫測試非常容易。
2、Mocha
Mocha是一個(gè)功能豐富的JavaScript測試框架,既運(yùn)行于Node.js環(huán)境中,也可以運(yùn)行于瀏覽器環(huán)境中。Mocha以串行方式運(yùn)行測試,能做出靈活而準(zhǔn)確的報(bào)告,也能將測試中未捕捉的異常映射到正確的測試用例。
3、Chai
Chai是個(gè)支持BDD/TDD的庫,可用于node和瀏覽器,可配合任何JavaScript測試框架使用。
4、QUnit
QUnit是個(gè)功能強(qiáng)大又易于使用的JavaScript單元測試框架。jQuery、jQueryUI和jQueyMobile項(xiàng)目都使用這個(gè)框架,它能測試普通的JavaScript代碼。
5、Sinon
Sinon.JS為JavaScript提供了獨(dú)立的spies、stubs和mocks[譯者注:Spy、Stub和Mock都是測試專用名詞,Stub常被翻譯為樁,spies是Spy的復(fù)數(shù)形式,是一種可以監(jiān)視方法、調(diào)用和參數(shù)的技術(shù)]。它不依賴任何東西,可以配合任何單元測試框架工作。
6、Karma
Karma是針對(duì)連通瀏覽器的一個(gè)框架無關(guān)測試運(yùn)行器。每一個(gè)測試結(jié)果對(duì)應(yīng)每個(gè)瀏覽器,它的測試和顯示都是通過命令行暴露給開發(fā)者的,這樣他們就可以看到瀏覽器測試的通過或失敗。
7、Selenium
Selenium有一個(gè)簡單的目標(biāo):就是自動(dòng)化瀏覽器。它主要用于自動(dòng)化測試web應(yīng)用程序,但是只是很簡單地考慮到了基于網(wǎng)絡(luò)的管理任務(wù)。
8、WebdriverIO
WebdriverIO允許用戶僅添加幾行代碼就可以控制瀏覽器或移動(dòng)應(yīng)用程序,使測試代碼更簡單、簡潔、易讀。集成的TestRunner同樣允許你以同步的方式調(diào)用異步命令,這樣你不需要關(guān)心如何處理Promise以避免競態(tài)條件。此外,它取消了所有的繁瑣的設(shè)置工作,并且會(huì)為您管理的Selenium會(huì)話。
9、Nightwatch
Nightwatch.js是一個(gè)易于使用的Node.js,它是為基于瀏覽器的app和網(wǎng)站設(shè)計(jì)的終端到終端(E2E)的測試方法。它使用強(qiáng)大的W3CWebDriverAPI,用于在DOM元素上執(zhí)行命令和斷言。
10、PhantomCSS
PhantomCSS獲得CasperJS捕獲的屏幕截圖,并使用Resemble.js將其與基準(zhǔn)圖進(jìn)行對(duì)比,以測試RGB像素差異。java課程發(fā)現(xiàn)PhantomCSS然后生成圖像差異對(duì)比,用于幫助您找到原因。
11、PhantomFlow
PhantomFlow使用決策樹提供UI測試方案。針對(duì)PhantomJS,CasperJS和PhantomCSS的NodeJS包裝器——PhantomFlow能夠流暢地在代碼中描述用戶流程,同時(shí)生成用于可視化的結(jié)構(gòu)化樹數(shù)據(jù)。
可以用main函數(shù)和JUnit來寫測試代碼。main是最早使用的,但是現(xiàn)在更流行的測試工具是JUnit。
JUnit是一個(gè)Java語言的單元測試框架。它由Kent Beck和Erich Gamma建立,逐漸成為源于Kent Beck的sUnit的xUnit家族中最為成功的一個(gè)。 JUnit有它自己的JUnit擴(kuò)展生態(tài)圈。多數(shù)Java的開發(fā)環(huán)境都已經(jīng)集成了JUnit作為單元測試的工具。
下面是一些具體的編寫測試代碼的技巧或較好的實(shí)踐方法:
1. 不要用TestCase的構(gòu)造函數(shù)初始化Fixture,而要用setUp()和tearDown()方法。
2. 不要依賴或假定測試運(yùn)行的順序,因?yàn)镴Unit利用Vector保存測試方法。所以不同的平臺(tái)會(huì)按不同的順序從Vector中取出測試方法。
3. 避免編寫有副作用的TestCase。例如:如果隨后的測試依賴于某些特定的交易數(shù)據(jù),就不要提交交易數(shù)據(jù)。簡單的回滾就可以了。
4. 當(dāng)繼承一個(gè)測試類時(shí),記得調(diào)用父類的setUp()和tearDown()方法。
5. 將測試代碼和工作代碼放在一起,一邊同步編譯和更新。(使用Ant中有支持junit的task.)
6. 測試類和測試方法應(yīng)該有一致的命名方案。如在工作類名前加上test從而形成測試類名。
7. 確保測試與時(shí)間無關(guān),不要依賴使用過期的數(shù)據(jù)進(jìn)行測試。導(dǎo)致在隨后的維護(hù)過程中很難重現(xiàn)測試。
8. 如果你編寫的軟件面向國際市場,編寫測試時(shí)要考慮國際化的因素。不要僅用母語的Locale進(jìn)行測試。
9. 盡可能地利用JUnit提供地assert/fail方法以及異常處理的方法,可以使代碼更為簡潔。
10.測試要盡可能地小,執(zhí)行速度快。
11.不要硬性規(guī)定數(shù)據(jù)文件的路徑。
12.利用Junit 的自動(dòng)異常處理書寫簡潔的測試代碼
事實(shí)上在Junit 中使用try-catch 來捕獲異常是沒有必要的,Junit 會(huì)自動(dòng)捕獲異常。那些沒有被捕獲的異常就被當(dāng)成錯(cuò)誤處理。
13. 充分利用Junit 的assert/fail 方法
assertSame()用來測試兩個(gè)引用是否指向同一個(gè)對(duì)象
assertEquals()用來測試兩個(gè)對(duì)象是否相等
14. 確保測試代碼與時(shí)間無關(guān)
15. 使用文檔生成器做測試文檔。