關閉→
當前位置:知科普>綜合知識>java怎麼寫junit測試用例 - javajunit測試類怎麼寫

java怎麼寫junit測試用例 - javajunit測試類怎麼寫

知科普 人氣:2.57W
1.java 怎麼寫junit測試用例

文件名:Calutor.java

javajunit測試類怎麼寫 java怎麼寫junit測試用例

package com.sc.zy;

public class Calutor {

public int add(int num1,int num2){

return num1+num2;

}

public int sub(int num1,int num2){

return num1-num2;

}

public int mul(int num1,int num2){

return num1*num2;

}

public int div(int num1,int num2){

if(num2==0){

throw new MyException();

}

return num1/num2;

}

}

文件名:MyException.Java

package com.sc.zy;

public class MyException extends RuntimeException {

}

文件名:CalutorTest.java

package com.sc.zy;

import junit.framework.Assert;

import org.junit.After;

import org.junit.AfterClass;

import org.junit.Before;

import org.junit.BeforeClass;

import org.junit.Ignore;

import org.junit.Test;

public class CalutorTest {

private Calutor c;

@BeforeClass

public static void setUpBeforeClass(){

System.out.println("=====static init=======");

}

@AfterClass

public static void tearDownAfterClass(){

System.out.println("=====static destory=======");

}

@Before

public void setUp(){

System.out.println("=======@before=======");

c=new Calutor();

}

@After

public void tearDown(){

System.out.println("=======@after=======");

}

@Test

public void testAdd(){

int sum=c.add(1, 2);

Assert.assertEquals(3, sum);

}

@Test(expected=com.sc.zy.MyException.class)

public void testDiv(){

c.div(1, 0);

}

@Ignore

public void testDiv1(){

int d=c.div(1, 5);

Assert.assertEquals(0, d);

}

}

2.java和junit寫類與測試類

/** Book類 */

public class Book {

public String name;

public String author;

private int availNum;

public Book() {

this("", "", 0);

}

public Book(String name, String author, int availNum) {

this.name = name;

this.author = author;

this.availNum = availNum;

}

public int getAvailNum() {

return availNum;

}

public void setAvailNum(int availNum) {

this.availNum = availNum;

}

public boolean subscribe() {

if (availNum > 0) {

availNum--;

return true;

}

return false;

}

public boolean cancelSubscribe() {

availNum++;

return true;

}

}

/** Book類的單元測試類 */

import junit.framework.TestCase;

public class TestBook extends TestCase {

public void testBook() {

Book book = new Book("Thinking in Java", "Bruce Eckel", 3);

assertEquals(true, book.subscribe());// 第一次預借,應該是成功的

assertEquals(2, book.getAvailNum());// 此時的可預借數是2

assertEquals(true, book.cancelSubscribe());// 取消預借,應該是成功的

assertEquals(3, book.getAvailNum());// 此時的可預借數是3

book.setAvailNum(0);// 將可預借數設為0

assertEquals(false, book.subscribe());// 此時預借,應該是不成功的

}

public static void main(String[] args) {

junit.textui.TestRunner.run(Book.class);

}

}

上面的測試類可以不要main函數,直接在集成開發環境裏用JUnit執行單元測試。

3.java junit單元測試怎麼寫

package com.yuanqi.zfb.test;

import org.junit.Test;

import com.yuanqi.zfb.util.VerifyCodeUtils;

public class Atest {

@Test

public void test(){

String verifycode =VerifyCodeUtils.generateVerifyCode(8);

System.out.println(verifycode);

}

@Test

public void test2(){

// String str="2015-11-23 11:23:44";

/* boolean b= str.matches("d{4}-d{2}-d{2} d{2}:d{2}:d{2}");

if(b){

System.out.println("ok");

}else{

System.out.println("222222");

}*/

String str="2015112311:23:44";

boolean b= str.matches("d{10}:d{2}:d{2}");

System.out.println(b);

}

@Test

public void test3(){

String trTime="2014112800:05:48";

String inyear=trTime.substring(0, 4);

String inmonth=trTime.substring(4,6);

String inday=trTime.substring(6,8);

String intime=trTime.substring(8);

String time=inyear+"-"+inmonth+"-"+inday+" "+intime;

System.out.println(time);

}

}

4.如何使用junit編寫測試類

首先我們需要先下載相應的 JUnit 相關的 JAR 包,下載的過程可以去 JUnit 的官方網站,也可以直接通過 Maven 資源倉庫來完成。

使用簡單的 @Test 註解實現我們的測試方法的編寫和執行 準備工作做好之後,接下來我們就可以開始嘗試編寫壹個簡單的測試代碼了。首先,我們編寫了壹個 Calculator 類,並提供五個方法分別完成加減乘除以及求平方的運算。

代碼如下: package net.oschina.bairrfhoinn.main; public class Calculator { public void add(int n){ result += n; } public void substract(int n){ result -= n; } public void multiply(int n){ result *= n; } public void divide(int n){ result /= n; } public void square(int n){ result = n * n; } public int getReuslt(){ return result; } public void clear(){ result = 0; } private static int result; } 在測試類中用到了JUnit4框架,自然要把相應地Package包含進來。最主要地一個Package就是org.junit.*。

把它包含進來之後,絕大部分功能就有了。還有一句話也非常地重要“import static org.junit.Assert.*;”,我們在測試的時候使用的壹系列assertEquals()方法就來自這個包。

大家注意壹下,這是壹個靜態包含(static),是JDK5中新增添的壹個功能。也就是説,assertEquals是Assert類中的壹系列的靜態方法,壹般的使用方式是Assert. assertEquals(),但是使用了靜態包含後,前面的類名就可以省略了,使用起來更加的方便。

另外要注意的是,我們的測試類是壹個獨立的類,沒有任何父類。測試類的名字也可以任意命名,沒有任何侷限性。

所以我們不能通過類的聲明來判斷它是不是一個測試類,它與普通類的區別在於它內部的方法的聲明,我們接着會講到。在測試類中,並不是每壹個方法都是用於測試的,所以我們必須使用“註解”來明確表明哪些是測試方法。

“註解”也是JDK5的壹個新特性,用在此處非常恰當。我們可以看到,在某些方法的前有@Before、@Test、@Ignore等字樣,這些就是註解,以壹個“@”作為開頭。

這些註解都是JUnit4自定義的,熟練掌握這些註解的含義,對於編寫恰當的測試類非常重要。 接下來我們創建壹個測試類 CalculatorTest.java,代碼如下: package net.oschina.bairrfhoinn.test; import static org.junit.Assert.*; import org.junit.Test; import net.oschina.bairrfhoinn.main.Calculator; public class CalculatorTest { private static Calculator calculator = new Calculator(); @Test public void testAdd(){ calculator.add(7); calculator.add(8); assertEquals(15, calculator.getReuslt()); } } 首先,我們要在方法的前面使用@Test標註,以表明這是壹個測試方法。

對於方法的聲明也有如下要求:名字可以隨便取,沒有任何限制,但是返回值必須為void,而且不能有任何參數。如果違反這些規定,會在運行時拋出壹個異常。

至於方法內該寫些什麼,那就要看你需要測試些什麼了。比如上述代碼中,我們想測試壹下add()方法的功能是否正確,就在測試方法中調用幾次add函數,初始值為0,先加7,再加8,我們期待的結果應該是15。

如果最終實際結果也是15,則説明add()方法是正確的,反之説明它是錯的。assertEquals(15, calculator.getResult());就是用來判斷期待結果和實際結果是否相等,其中第壹個參數填寫期待結果,第二個參數填寫實際結果,也就是通過計算得到的結果。

這樣寫好之後,JUnit 會自動進行測試並把測試結果反饋給用户。 如果想運行它,可以在 eclipse 的資源管理器中選擇該類文件,然後點擊右鍵,選擇 Run As->JUnit Test 即可看到運行結果。

使用@Test 的屬性 Ignore 指定測試時跳過這個方法 如果在寫程序前做了很好的規劃,那麼哪些方法是什麼功能都應該實現並且確定下來。因此,即使該方法尚未完成,他的具體功能也是確定的,這也就意味着你可以為他編寫測試用例。

但是,如果你已經把該方法的測試用例寫完,但該方法尚未完成,那麼測試的時候無疑是“失敗”。這種失敗和真正的失敗是有區別的,因此 JUnit 提供了壹種方法來區別他們,那就是在這種測試函數的前面加上 @Ignore 標註,這個標註的含義就是“某些方法尚未完成,暫不參與此次測試”。

這樣的話測試結果就會提示你有幾個測試被忽略,而不是失敗。壹旦你完成了相應函數,只需要把@Ignore標註刪去,就可以進行正常的測試。

比如説上面的測試類 Calculator.java 中,假設我們的 Calculator 類的 multiply() 方法沒有實現,我們可以在測試類 CalculatorTest 中先寫如下測試代碼: package net.oschina.bairrfhoinn.test; import static org.junit.Assert.*; import org.junit.Ignore; import org.junit.Test; import net.oschina.bairrfhoinn.main.Calculator; public class CalculatorTest { private static Calculator calculator = new Calculator(); 。 //此處代碼省略 @Ignore("method square() not implemented, please test this later。

") @Test public void testSquare(){ calculator.square(3); assertEquals(9, calculator.getReuslt()); } } 我們再運行壹次測試,會看到如下結果,從圖中可以很明顯的看出,方法testSquare() 上的 @Ignore 註解已經生效了,運行時直接跳過了它,而方法testAdd(。

5.Java Junit Test 要怎麼寫

一般不用寫,直接測試方法,在測試的方法上加上註解@Test

import org.junit.Test;

public class TestJunit {

@Test

public void TestSaveMethod(){

Food food=new Food("紅燒肉", new BigDecimal(45.5).setScale(2, BigDecimal.ROUND_HALF_UP), "hsr.jpg");

SaveFood(food);

}

public void SaveFood(Food food){

if(food!=null){

food.setId(UUID.randomUUID().toString());

System.out.println("Food Save is OK!");

System.out.println("當前ID:"+food.getId()+" 名稱:"+food.getName()+" 單價:"+food.getPrice());

}else{

System.out.println("Food Save is False!");

}

}

}

class Food implements Serializable{

private String id;

private String name;

private BigDecimal price;

private String icon;

public Food(String name,BigDecimal price,String icon) {

this.name=name;

this.price=price;

this.icon=icon;

}

public void setId(String id) {

this.id = id;

}

public String getId() {

return id;

}

public String getName() {

return name;

}

public BigDecimal getPrice() {

return price;

}

public String getIcon() {

return icon;

}

}

//這樣的話RUN 的時候就會出現JUnit測試

6.如何使用junit編寫測試類

首先我們需要先下載相應的 JUnit 相關的 JAR 包,下載的過程可以去 JUnit 的官方網站,也可以直接通過 Maven 資源倉庫來完成。

使用簡單的 @Test 註解實現我們的測試方法的編寫和執行準備工作做好之後,接下來我們就可以開始嘗試編寫壹個簡單的測試代碼了。首先,我們編寫了壹個 Calculator 類,並提供五個方法分別完成加減乘除以及求平方的運算。

代碼如下:package net.oschina.bairrfhoinn.main;public class Calculator {public void add(int n){result += n;}public void substract(int n){result -= n;}public void multiply(int n){result *= n;}public void divide(int n){result /= n;}public void square(int n){result = n * n;}public int getReuslt(){return result;}public void clear(){result = 0;}private static int result;}在測試類中用到了JUnit4框架,自然要把相應地Package包含進來。最主要地一個Package就是org.junit.*。

把它包含進來之後,絕大部分功能就有了。還有一句話也非常地重要“import static org.junit.Assert.*;”,我們在測試的時候使用的壹系列assertEquals()方法就來自這個包。

大家注意壹下,這是壹個靜態包含(static),是JDK5中新增添的壹個功能。也就是説,assertEquals是Assert類中的壹系列的靜態方法,壹般的使用方式是Assert. assertEquals(),但是使用了靜態包含後,前面的類名就可以省略了,使用起來更加的方便。

另外要注意的是,我們的測試類是壹個獨立的類,沒有任何父類。測試類的名字也可以任意命名,沒有任何侷限性。

所以我們不能通過類的聲明來判斷它是不是一個測試類,它與普通類的區別在於它內部的方法的聲明,我們接着會講到。在測試類中,並不是每壹個方法都是用於測試的,所以我們必須使用“註解”來明確表明哪些是測試方法。

“註解”也是JDK5的壹個新特性,用在此處非常恰當。我們可以看到,在某些方法的前有@Before、@Test、@Ignore等字樣,這些就是註解,以壹個“@”作為開頭。

這些註解都是JUnit4自定義的,熟練掌握這些註解的含義,對於編寫恰當的測試類非常重要。接下來我們創建壹個測試類 CalculatorTest.java,代碼如下:package net.oschina.bairrfhoinn.test;import static org.junit.Assert.*;import org.junit.Test;import net.oschina.bairrfhoinn.main.Calculator;public class CalculatorTest {private static Calculator calculator = new Calculator();@Testpublic void testAdd(){calculator.add(7);calculator.add(8);assertEquals(15, calculator.getReuslt());}}首先,我們要在方法的前面使用@Test標註,以表明這是壹個測試方法。

對於方法的聲明也有如下要求:名字可以隨便取,沒有任何限制,但是返回值必須為void,而且不能有任何參數。如果違反這些規定,會在運行時拋出壹個異常。

至於方法內該寫些什麼,那就要看你需要測試些什麼了。比如上述代碼中,我們想測試壹下add()方法的功能是否正確,就在測試方法中調用幾次add函數,初始值為0,先加7,再加8,我們期待的結果應該是15。

如果最終實際結果也是15,則説明add()方法是正確的,反之説明它是錯的。assertEquals(15, calculator.getResult());就是用來判斷期待結果和實際結果是否相等,其中第壹個參數填寫期待結果,第二個參數填寫實際結果,也就是通過計算得到的結果。

這樣寫好之後,JUnit 會自動進行測試並把測試結果反饋給用户。如果想運行它,可以在 eclipse 的資源管理器中選擇該類文件,然後點擊右鍵,選擇 Run As->JUnit Test 即可看到運行結果。

使用@Test 的屬性 Ignore 指定測試時跳過這個方法如果在寫程序前做了很好的規劃,那麼哪些方法是什麼功能都應該實現並且確定下來。因此,即使該方法尚未完成,他的具體功能也是確定的,這也就意味着你可以為他編寫測試用例。

但是,如果你已經把該方法的測試用例寫完,但該方法尚未完成,那麼測試的時候無疑是“失敗”。這種失敗和真正的失敗是有區別的,因此 JUnit 提供了壹種方法來區別他們,那就是在這種測試函數的前面加上 @Ignore 標註,這個標註的含義就是“某些方法尚未完成,暫不參與此次測試”。

這樣的話測試結果就會提示你有幾個測試被忽略,而不是失敗。壹旦你完成了相應函數,只需要把@Ignore標註刪去,就可以進行正常的測試。

比如説上面的測試類 Calculator.java 中,假設我們的 Calculator 類的 multiply() 方法沒有實現,我們可以在測試類 CalculatorTest 中先寫如下測試代碼:package net.oschina.bairrfhoinn.test;import static org.junit.Assert.*;import org.junit.Ignore;import org.junit.Test;import net.oschina.bairrfhoinn.main.Calculator;public class CalculatorTest {private static Calculator calculator = new Calculator();。 //此處代碼省略@Ignore("method square() not implemented, please test this later。

")@Testpublic void testSquare(){calculator.square(3);assertEquals(9, calculator.getReuslt());}}我們再運行壹次測試,會看到如下結果,從圖中可以很明顯的看出,方法testSquare() 上的 @Ignore 註解已經生效了,運行時直接跳過了它,而方法testAdd()仍然正常的運行並通過了測試。使用註解 @Before 和 @After 來。

TAG標籤:#測試用例 #java #javajunit #junit #測試 #