本文目錄一覽:
- 1、java 怎麼寫junit測試用例
- 2、如何用java自動執行junit
- 3、如何使用junit測試javaweb工程
- 4、java junit有什麼作用呢,普遍用在什麼地方呢
- 5、junit是什麼?
java 怎麼寫junit測試用例
java中Junit應用介紹:assertexp1;//exp1為boolean類型的值assertexp1:message;//message為如果exp1不是true的時候,要提示的錯誤消息斷言一般作用:代碼運行前寫斷言判斷必須滿足的條件;代碼運行後判斷必須符合的標準;確定代碼運行過程中有無改變某些不應該變的東西2.junit中的Assert類提供了很多方法,替代斷言,參照api:assertEquals、assertFalse、assertTrue、assertNotNull、assertNull、assertSame、fail3.註解@interface用來定義註解@Retention用來聲明註解的保留策略,有CLASS(註解保存在class文件中)、RUNTIME(運行時可用)和SOURCE(僅在源代碼中)這三種@Target用來聲明註解可以被添加在哪些類型的元素上:註解、類、方法、方法參數、構造、字段、方法中的普通變量定義一個能在方法上使用的註解:@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.METHOD})public@interfaceKennethTest{}寫一個測試類publicclassTest{@KennethTestpublicvoidtest1(){System.out.println(“test1”);}publicvoidtest2(){System.out.println(“test2”);}@KennethTestpublicvoidtest3(){System.out.println(“test3”);}}執行一個類中所有標記KennethTest的方法publicclassMain{publicstaticvoidmain(String[]args)throwsException{//反射ClassclassObj=Test.class;//獲取Test的類對象Objectobj=classObj.newInstance();//調用無參數構造,新建一個Test的對象Method[]methods=classObj.getMethods();//獲取Test類中所有public方法for(Methodmethod:methods){if(method.getAnnotation(KennethTest.class)!=null){//看這個方法是否有KennethTest註解method.invoke(obj);//如果這個方法有KennethTest註解,那麼這個方法被調用執行}}}}4.junit中的註解@Test@Test(expected=IndexOutOfBoundsException.class)測試方法拋出這個異常就能通過測試@Test(timeout=10)測試方法不能超過10毫秒@Ignore忽略測試@Before每個測試方法之前執行@After每個測試方法之後執行@BeforeClass在加載類時執行@AfterClass在所有測試方法執行結束,如果有after的話,所有after也執行結束後執行5.通常寫測試代碼的規則:1)產品源代碼和測試源代碼要分開,包名類名一致例如org.ken.PersonDao對應測試代碼可以為test.org.ken.PersonDaoTest2)一個有功能類要寫至少一個測試類3)一個方法代表一個用例用例之間要保持獨立(最好不要互相調用)
如何用java自動執行junit
驟一:構建環境
首先新建一個java project.,名字叫做junit3。在拘泥t中再構建一個source folder。目的是形成良好的變成風格。將源碼放在src中將測試代碼發在另一個source folder(名字叫做test)中。
形成的目錄結構如圖。
2
在src中和test中起相同名字的packet,這樣編譯後的class就在同一個目錄下,不需要導入包即可。我的packet名字叫做(com.edu)
形成的目錄結構如圖所示。
如何使用junit測試javaweb工程
一:創建一個測試類,建議將測試類單獨放在一個包中(在 maven 項目里有測試類專門的存放位置),新建一個Junit Test Case類,下一步
測試類的命名建議是你將要測試的類名+Test,然後點 Browse, 你可以選擇要進行測試的類(一般選擇 Service, 因為 Service 關心的是業務需求),用這種方式創建可以自動生成要測試類的測試類,你只需要進行測試代碼的書寫.
@Test
public void testqueryById(){
} @Test
public void testQueryAll(){
} @Test
public void testReduceNumber(){
}123456789101112
如果裏面有自動生成的代碼,刪除或注釋即可…
二:配置 spring 和 junit 整合, junit 啟動時加載 springIOC 容器,這裡你需要 Spring-test jar包
@RunWith(SpringJUnit4ClassRunner.class) //告訴junitspring配置文件
@ContextConfiguration(locations = {“classpath:spring/spring-dao.xml”})123
同樣的,在測試類中我們會調用 Service 的邏輯,由於我們使用的是 Spring+SpringMVC+ 持久化框架,所以要注入一個 IService 接口(這裡我直接對 DAO 進行測試了)
@Autowired
private SeckillDao seckillDao;12
接下來是測試邏輯,在編寫測試代碼之前建議覆蓋實體中的 toString 方法,不然打印會很麻煩.
@Test public void testqueryById(){ long id = 1000;
Seckill seckill = seckillDao.queryById(id);
System.out.println(seckill.getSeckillName());
System.out.println(seckill);
} //JAVA沒有保存形參的記錄,如果你在 dao 中傳了多個參數,那麼需要聲明它的形參對應的實參,否則 JVM 會顯示找不到參數.聲明方式稍後奉上
@Test public void testQueryAll(){
ListSeckill seckills = seckillDao.queryAll(0, 100); for(Seckill seckill:seckills){
System.out.println(seckill);
}
}
@Test public void testReduceNumber(){
Date killTime = new Date(); //對增加進行測試的時候,只要數據庫增加了一條數據,我們就默認這個方法執行成功了
int updateCount = seckillDao.reduceNumber(1000L, killTime);
System.out.println(“updateCount = “+updateCount);
}123456789101112131415161718192021222324
解決JAVA不保存形參的記錄
int reduceNumber(@Param(“seckillId”)long seckillId,@Param(“killTime”)Date killTime);
Seckill queryById(long seckillId); /**
* mysql的分頁查詢
* @param offset 告訴它實際的形參
* @param limit
* @return
*/
ListSeckill queryAll(@Param(“offset”)int offset,@Param(“limit”)int limit);1234567891011
接下來我們根據他返回的結果和我們想要的結果對應就可以了. 測試類不用部署項目, 測試周期非常短, 而且可以進行專項測試. 測試類代碼邏輯十分簡單, 幾乎不會出錯. 如果結果不是預期的, 那麼根據你的需求修改!
當然, 它的局限性也很打. 從單元測試不能看出頁面傳值的錯誤, 許多項目在服務器中的表現也不能模擬.
那麼我們什麼時候用junit呢?
當你的數據庫操作非常複雜, 你不確定能輸出你想要的值的時候, 相比用 debug 調試, 使用 Junit 是更方便的手段.或者新手出錯概率非常大, 也不用在服務器中專門測試項目的表現, Junit 是個必備的工具!而且測試類的測試代碼重用性很高.
如果你的數據和預期相悖, 那麼修改業務邏輯; 否則, 查看頁面是否有錯! Junit在一定程度上減輕了我們業務代碼調試的壓力, 讓我們關注於一點解決錯誤.
java junit有什麼作用呢,普遍用在什麼地方呢
Junit, 是Java的單元測試的工具; 如果你看一些軟件工程的書籍就會知道, 測試分很多階段, 第一階段就是單元測試。
Junit作用:Java,我們知道是編程語言,但是任何程序都有可能會出錯。為了保證程序如期望的運行和獲得結果,進行一些假定條件和假定結果的一種編成思維。
小規模的系統看不出效果,一旦有很大規模了。比如濤寶要上一個新的功能,但是濤寶本身有1000萬個方法,在每次系統上線的時候, 要確保本身的1000萬個方法都是運行正常的, 你怎麼辦? 如果有junit, 跑一下就知道結果啦。
希望對你有幫助。
junit是什麼?
junit是一個Java語言的單元測試框架,用於編寫和運行可重複的測試。他是用於單元測試框架體系xUnit的一個實例(用於java語言)。
junit由Kent Beck和Erich Gamma建立, JUnit有其自己的JUnit擴展生態圈。多數Java的開發環境已集成了JUnit作為單元測試的工具。用於測試期望結果的斷言,用於共享共同測試數據的測試工具,用於方便的組織和運行測試的測試套件及圖形和文本的測試運行器。
擴展資料:
Junit測試
Junit測試為程序員測試,即所謂白盒測試,程序員知道被測試的軟件如何(How)完成功能和完成什麼樣(What)的功能。
1、測試計劃階段:根據需求說明書,制定測試進度。
2、測試設計階段:根據代碼的功能,人工設計測試用例進行基本功能測試。依據程序設計說明書,按照一定規範化的方法進行軟件結構劃分和設計測試用例。
3、測試執行階段:輸入測試用例,得到測試結果。
4、測試總結階段:對比測試的結果和代碼的預期結果,分析錯誤原因,找到並解決錯誤。
參考資料來源:百度百科-junit
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/286669.html
微信掃一掃
支付寶掃一掃