可以用main函數(shù)和JUnit來寫測試代碼。main是最早使用的,但是現(xiàn)在更流行的測試工具是JUnit。
成都創(chuàng)新互聯(lián)成立于2013年,先為德欽等服務(wù)建站,德欽等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為德欽企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
JUnit是一個Java語言的單元測試框架。它由Kent Beck和Erich Gamma建立,逐漸成為源于Kent Beck的sUnit的xUnit家族中最為成功的一個。 JUnit有它自己的JUnit擴展生態(tài)圈。多數(shù)Java的開發(fā)環(huán)境都已經(jīng)集成了JUnit作為單元測試的工具。
下面是一些具體的編寫測試代碼的技巧或較好的實踐方法:
1. 不要用TestCase的構(gòu)造函數(shù)初始化Fixture,而要用setUp()和tearDown()方法。
2. 不要依賴或假定測試運行的順序,因為JUnit利用Vector保存測試方法。所以不同的平臺會按不同的順序從Vector中取出測試方法。
3. 避免編寫有副作用的TestCase。例如:如果隨后的測試依賴于某些特定的交易數(shù)據(jù),就不要提交交易數(shù)據(jù)。簡單的回滾就可以了。
4. 當繼承一個測試類時,記得調(diào)用父類的setUp()和tearDown()方法。
5. 將測試代碼和工作代碼放在一起,一邊同步編譯和更新。(使用Ant中有支持junit的task.)
6. 測試類和測試方法應(yīng)該有一致的命名方案。如在工作類名前加上test從而形成測試類名。
7. 確保測試與時間無關(guān),不要依賴使用過期的數(shù)據(jù)進行測試。導致在隨后的維護過程中很難重現(xiàn)測試。
8. 如果你編寫的軟件面向國際市場,編寫測試時要考慮國際化的因素。不要僅用母語的Locale進行測試。
9. 盡可能地利用JUnit提供地assert/fail方法以及異常處理的方法,可以使代碼更為簡潔。
10.測試要盡可能地小,執(zhí)行速度快。
11.不要硬性規(guī)定數(shù)據(jù)文件的路徑。
12.利用Junit 的自動異常處理書寫簡潔的測試代碼
事實上在Junit 中使用try-catch 來捕獲異常是沒有必要的,Junit 會自動捕獲異常。那些沒有被捕獲的異常就被當成錯誤處理。
13. 充分利用Junit 的assert/fail 方法
assertSame()用來測試兩個引用是否指向同一個對象
assertEquals()用來測試兩個對象是否相等
14. 確保測試代碼與時間無關(guān)
15. 使用文檔生成器做測試文檔。
可以用main方法(主方法)進行單元測試
或者使用@Junit 家在方法上面
JAVA中的測試類是用來是用來對已經(jīng)寫好的功能組件進行測試的。
可以有兩種方法進行測試:
第一種:另外新建一個帶有main方法的類,利用該類來調(diào)用需要測試的類,把需要測試的數(shù)據(jù)傳入進去即可。比如:
需要測試的類是ScoreQuery(String stuNum, String subject);
public class TestCase{
public static void main(String[] args) {
ScoreQuery scoreQuery= new ScoreQuery("Tom", "150110101");
Map map = new HashMap();
map = scoreQuery.query();
System.out.println(map);
}
}
可以利用上面的方法對ScoreQuery(String stuNum, String subject)進行功能測試。
這種方法的好處就是比較簡單,容易實現(xiàn);但是弊端也很明顯,不能進行功能重用,而且每次都要重復很多無用的代碼。
第二種方法就是創(chuàng)建測試的功能組件,每次實現(xiàn)該功能組件對其他組件進行測試。
public class SimpleTestCase(){
Object object;
public staitc void prepare(){
Map map = new HashMap();
map.put("", "");
......
BeanUtils.map2Bean(map, object);
}
}
以后的測試類只需繼承上面的測試類即可。
簡單給你分析了一下,有好幾個測試點:
正確獲取到barcode。
正確試用barcode生成readerForm
使用readerForm獲取讀者條碼
正確設(shè)置readerinfo
代碼寫得耦合度不夠低,但還算可以,需要你用打樁來完成測試:
寫一個request的子類,改寫request中的getParameter方法,使之返回你想要的東西。
寫一個readerDAO的子類,改寫queryM的方法,驗證readerForm中是否有正確的barcode,并保存結(jié)果,調(diào)用完畢后通過get方法查詢結(jié)果。queryM方法的返回結(jié)果你自己來定義,方便后面驗證
還是request的子類,改寫setAttribute方法,驗證readerinfo是否是之前readerDAO的返回結(jié)果。
不要測試是否是數(shù)據(jù)庫里的值,是否是數(shù)據(jù)庫里的值應(yīng)該對readerDAO編寫測試用例,而不是這個類。
新聞名稱:java測試類代碼解析 java測試項目
本文URL:http://www.rwnh.cn/article0/dosiiio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站改版、網(wǎng)站建設(shè)、手機網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)