步驟:
平潭ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
1、在cmd中切換到編寫的代碼所保存的目錄下;
2、在cmd中輸入javac然后點(diǎn)空格,再點(diǎn)擊文件名和包括后綴名確定后,在存放編寫代碼的文件下會(huì)生成一個(gè)class的字節(jié)碼文件;
3、在cmd中輸入java然后點(diǎn)空格,輸入第二步中生成的字節(jié)碼的文件名,不需要后綴名,點(diǎn)擊確定即可運(yùn)行代碼。
代碼就是程序員用開發(fā)工具所支持的語(yǔ)言寫出來(lái)的源文件,是一組由字符、符號(hào)或信號(hào)碼元以離散形式表示信息的明確的規(guī)則體系。計(jì)算機(jī)代碼稱為源代碼,是相對(duì)目標(biāo)代碼和可執(zhí)行代碼而言的。 源代碼就是用匯編語(yǔ)言和高級(jí)語(yǔ)言寫出來(lái)的地代碼,目標(biāo)代碼是指源代碼經(jīng)過(guò)編譯程序產(chǎn)生的能被cpu直接識(shí)別二進(jìn)制代碼。
可以用main函數(shù)和JUnit來(lái)寫測(cè)試代碼。main是最早使用的,但是現(xiàn)在更流行的測(cè)試工具是JUnit。
JUnit是一個(gè)Java語(yǔ)言的單元測(cè)試框架。它由Kent Beck和Erich Gamma建立,逐漸成為源于Kent Beck的sUnit的xUnit家族中最為成功的一個(gè)。 JUnit有它自己的JUnit擴(kuò)展生態(tài)圈。多數(shù)Java的開發(fā)環(huán)境都已經(jīng)集成了JUnit作為單元測(cè)試的工具。
下面是一些具體的編寫測(cè)試代碼的技巧或較好的實(shí)踐方法:
1. 不要用TestCase的構(gòu)造函數(shù)初始化Fixture,而要用setUp()和tearDown()方法。
2. 不要依賴或假定測(cè)試運(yùn)行的順序,因?yàn)镴Unit利用Vector保存測(cè)試方法。所以不同的平臺(tái)會(huì)按不同的順序從Vector中取出測(cè)試方法。
3. 避免編寫有副作用的TestCase。例如:如果隨后的測(cè)試依賴于某些特定的交易數(shù)據(jù),就不要提交交易數(shù)據(jù)。簡(jiǎn)單的回滾就可以了。
4. 當(dāng)繼承一個(gè)測(cè)試類時(shí),記得調(diào)用父類的setUp()和tearDown()方法。
5. 將測(cè)試代碼和工作代碼放在一起,一邊同步編譯和更新。(使用Ant中有支持junit的task.)
6. 測(cè)試類和測(cè)試方法應(yīng)該有一致的命名方案。如在工作類名前加上test從而形成測(cè)試類名。
7. 確保測(cè)試與時(shí)間無(wú)關(guān),不要依賴使用過(guò)期的數(shù)據(jù)進(jìn)行測(cè)試。導(dǎo)致在隨后的維護(hù)過(guò)程中很難重現(xiàn)測(cè)試。
8. 如果你編寫的軟件面向國(guó)際市場(chǎng),編寫測(cè)試時(shí)要考慮國(guó)際化的因素。不要僅用母語(yǔ)的Locale進(jìn)行測(cè)試。
9. 盡可能地利用JUnit提供地assert/fail方法以及異常處理的方法,可以使代碼更為簡(jiǎn)潔。
10.測(cè)試要盡可能地小,執(zhí)行速度快。
11.不要硬性規(guī)定數(shù)據(jù)文件的路徑。
12.利用Junit 的自動(dòng)異常處理書寫簡(jiǎn)潔的測(cè)試代碼
事實(shí)上在Junit 中使用try-catch 來(lái)捕獲異常是沒有必要的,Junit 會(huì)自動(dòng)捕獲異常。那些沒有被捕獲的異常就被當(dāng)成錯(cuò)誤處理。
13. 充分利用Junit 的assert/fail 方法
assertSame()用來(lái)測(cè)試兩個(gè)引用是否指向同一個(gè)對(duì)象
assertEquals()用來(lái)測(cè)試兩個(gè)對(duì)象是否相等
14. 確保測(cè)試代碼與時(shí)間無(wú)關(guān)
15. 使用文檔生成器做測(cè)試文檔。
你這說(shuō)的太籠統(tǒng)了,應(yīng)該具體些。
有了Java代碼之后
1、可以在代碼中寫些測(cè)試的方法,把你想要驗(yàn)證的東西,輸出看一下。
2、可以用Debug的形式,跟蹤代碼執(zhí)行,驗(yàn)證程序的邏輯是否正確。
3、利用JUnit寫斷言,測(cè)試結(jié)果
是控制臺(tái)輸入嗎。為了方便類都寫一個(gè)里面了??梢詤⒖枷?/p>
建立一個(gè)題目實(shí)體(標(biāo)題、4個(gè)選項(xiàng)屬性、正確答案);
建立一個(gè)結(jié)果實(shí)體(標(biāo)題、是否正確結(jié)果、選擇的答案、正確答案);
建立一個(gè)題目list集合,用于存放題目(每個(gè)難度對(duì)應(yīng)一個(gè)list);
建立一個(gè)結(jié)果list集合,用于存放作答后的信息;
創(chuàng)建對(duì)應(yīng)的題目對(duì)象,實(shí)體化實(shí)體,并且放入對(duì)應(yīng)的list里面
根據(jù)選擇對(duì)應(yīng)的難度找到對(duì)應(yīng)難度的list集合;
然后遍歷這個(gè)集合,依次顯示每個(gè)題目的信息,并讓用戶作答,答完一個(gè)顯示下一個(gè)題目,
獲取用戶選擇的答案,用這個(gè)答案跟實(shí)體中的正確答案做比較;
創(chuàng)建結(jié)果實(shí)體對(duì)象,將比較后的信息set到實(shí)體中。(標(biāo)題、正確結(jié)果、選擇的答案、正確答案);
將這個(gè)結(jié)果實(shí)體放入到結(jié)果list集合中;循環(huán)結(jié)束后遍歷結(jié)果list集合顯示就可以了。
代碼:
import?java.util.ArrayList;
import?java.util.List;
import?java.util.Scanner;
public?class?SaveLog?{
public?static?void?main(String[]?args)?{
Scanner?in?=?new?Scanner(System.in);
//?提示信息
System.out.println("請(qǐng)輸入數(shù)字選擇題目難度,1:簡(jiǎn)單,2:困難");
//?獲取到對(duì)應(yīng)難度的題目
ListQuestion?questionList?=?getQuestionByLevel(in.nextInt());
//?創(chuàng)建結(jié)果list
ListQuestionResult?questionResults?=?new?ArrayListQuestionResult();
//?總答題,正確,錯(cuò)誤
int?questionCount?=?questionList.size();
int?correntCount?=?0;
int?errorCount?=?0;
//?遍歷題目
for?(int?i?=?0;?i??questionList.size();?i++)?{
//?獲取到題目
Question?question?=?questionList.get(i);
System.out.println("題目"?+?(i?+?1)?+?":"?+?question.getTitle());
//?獲取到題目選項(xiàng)并打印控制臺(tái)
ListString?selected?=?question.getList();
for?(String?string?:?selected)?{
System.out.println(string);
}
//?獲取到選擇的答案
String?corrent?=?in.next();
//?獲取到做題結(jié)果
QuestionResult?qr?=?setQuestionResult(question,?corrent);
//?計(jì)算錯(cuò)誤與正確的題目
if?(corrent.equalsIgnoreCase(question.getCorrentResult()))?{
correntCount?=?correntCount?+?1;
}?else?{
errorCount?=?errorCount?+?1;
}
//?放入結(jié)果集合
questionResults.add(qr);
}
System.out.println("您一共答了"?+?questionCount?+?"道題,其中正確的為"?+?correntCount?+?"題,錯(cuò)誤為"?+?errorCount?+?"題");
System.out.println();
//?遍歷結(jié)果
for?(QuestionResult?questionResult?:?questionResults)?{
if?(!questionResult.getSelected().equals(questionResult.getCorrentResult()))?{
System.out.println("錯(cuò)誤題目:"?+?questionResult.getTitle());
System.out.println("是否正確:"?+?questionResult.getResult());
System.out.println("選擇的答案:"?+?questionResult.getSelected()?+?",正確答案:"?+?questionResult.getCorrentResult());
System.out.println();
}
}
}
public?static?QuestionResult?setQuestionResult(Question?question,?String?corrent)?{
QuestionResult?result?=?new?QuestionResult();
result.setCorrentResult(question.getCorrentResult());
result.setTitle(question.getTitle());
result.setSelected(corrent);
//?如果答案正確
if?(corrent.equalsIgnoreCase(question.getCorrentResult()))?{
result.setResult("正確");
}?else?{
result.setResult("錯(cuò)誤");
}
return?result;
}
/**?根據(jù)難度獲取對(duì)應(yīng)題目(1:簡(jiǎn)單。2:困難)?*/
public?static?ListQuestion?getQuestionByLevel(int?level)?{
ListQuestion?result?=?null;
if?(level?==?1)?{
//?創(chuàng)建list集合用于存放題目,簡(jiǎn)單難度
ListQuestion?questionList?=?new?ArrayListQuestion();
//?添加題目到list
Question?question?=?new?Question();
question.setTitle("中國(guó)文化博大精深,請(qǐng)問(wèn)1+2等于幾?");
//?題目答案選項(xiàng)
ListString?list?=?new?ArrayListString();
list.add("A:1");
list.add("B:2");
list.add("C:3");
list.add("D:6");
question.setCorrentResult("C");
question.setList(list);
//?將題目放到list集合
questionList.add(question);
//?設(shè)置返回結(jié)果
result?=?questionList;
}?else?if?(level?==?2)?{
//?創(chuàng)建list集合用于存放題目,簡(jiǎn)單難度
ListQuestion?questionList?=?new?ArrayListQuestion();
//?添加題目到list
Question?question?=?new?Question();
question.setTitle("朝辭白帝彩云間的下一句是什么?");
//?題目答案選項(xiàng)
ListString?list?=?new?ArrayListString();
list.add("A:千里江陵一日還");
list.add("B:野火燒不盡");
list.add("C:離離原上草");
list.add("D:智商捉雞");
question.setCorrentResult("A");
question.setList(list);
//?將題目放到list集合
questionList.add(question);
//?設(shè)置返回結(jié)果
result?=?questionList;
}
return?result;
}
}
/**?題目結(jié)果類?*/
class?QuestionResult?{
/**?題目名稱?*/
private?String?title;
/**?是否正確?*/
private?String?result;
/**?選擇的答案?*/
private?String?selected;
/**?正確答案?*/
private?String?correntResult;
public?String?getTitle()?{
return?title;
}
public?void?setTitle(String?title)?{
this.title?=?title;
}
public?String?getResult()?{
return?result;
}
public?void?setResult(String?result)?{
this.result?=?result;
}
public?String?getSelected()?{
return?selected;
}
public?void?setSelected(String?selected)?{
this.selected?=?selected;
}
public?String?getCorrentResult()?{
return?correntResult;
}
public?void?setCorrentResult(String?correntResult)?{
this.correntResult?=?correntResult;
}
}
/**?題目類?*/
class?Question?{
/**?題目名稱?*/
private?String?title;
/**?題目的所有選項(xiàng)?*/
private?ListString?list;
/**?正確答案?*/
private?String?correntResult;
public?String?getTitle()?{
return?title;
}
public?void?setTitle(String?title)?{
this.title?=?title;
}
public?ListString?getList()?{
return?list;
}
public?void?setList(ListString?list)?{
this.list?=?list;
}
public?String?getCorrentResult()?{
return?correntResult;
}
public?void?setCorrentResult(String?correntResult)?{
this.correntResult?=?correntResult;
}
}
那是一個(gè)junit的測(cè)試方法,這段代碼可以直接寫在源碼中,作為白盒測(cè)試使用。
1、首先添加junit支持(這里假設(shè)你已經(jīng)假如支持庫(kù))。
其次,最好單獨(dú)創(chuàng)建test類文件夾
大致測(cè)試類這樣寫:
package?myUtils
import?static?org.junit.Assert.*;
import?org.junit.Test;
public?class?TranslatorTest?{
/**
*?這里測(cè)試你的translate方法
*/
@Test
public?void?testTranslate(String?str)?{??
Translator?my?=?new?Translator("enToZh.txt");??
String?tName?=?my.translate("sName");
System.out.println("tName:"+tName);
}?
}
當(dāng)然,Assert類提供了很多方便測(cè)試的靜態(tài)方法,推薦你使用提供的靜態(tài)方法進(jìn)行測(cè)試。不過(guò)你這個(gè)例子不需要。@Test注解也是必須的,測(cè)試類和類最好在同一個(gè)包下,分開管理(一個(gè)放src目錄下,一個(gè)放test目錄下(這個(gè)目錄需要自己創(chuàng)建))
網(wǎng)頁(yè)標(biāo)題:Java測(cè)試代碼程序,java最簡(jiǎn)單的測(cè)試代碼怎么寫
分享路徑:http://muchs.cn/article42/hssjec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、軟件開發(fā)、App設(shè)計(jì)、企業(yè)建站、響應(yīng)式網(wǎng)站、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)