Java中調試與測試常用方法


一、斷言

 1、概述

     根據之前的條件來對后續的結果進行預判。

 2、在Java中,斷言默認是不開啟的,需要手動進行開啟,只需添加參數-ea(enable assert的意思)

     開啟步驟:

  • 選中項目路徑,鼠標右鍵進入到Properties
  • 進入到如下目錄,按圖示進行設置

  • 進入到java設置界面,按照如下圖所示逐步設置,並保存

    

  3.斷言的使用格式

     assert判斷條件;或者assert判斷條件:提示信息;

    當項目調試完畢,直接手動將斷言關閉即可。用作代碼調試非常方便。

   示例如下:

public static void main(String[] args) {
        System.out.println("請輸入一個大於10的數:");
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        n +=5;
        
        assert n > 15:"需要一個大於10的值";
        n *= 3;
        System.out.println(n);
    }

二、單元測試

   1、概述

     單元測試是編寫測試代碼,用來檢測特定的、明確的、細顆粒的功能。單元測試並不一定保證程序功能是正確的,更不保證整體業務是准備的。

    2、Java單元測試的特點

  1. 在需要測試的方法之上要添加注解@Test
  2. @Before表示在測試方法之前執行,一般用於進行初始化操作
  3. @After表示在測試方法之后執行,一般用於進行資源的銷毀和回收
  4. 三無原則

            a、要求被測試的方法沒有參數

            b、要求被測試的方法沒有返回值 ---返回值類型必須是void

            c、要求被測試的方法必須是非靜態方法 

        5. 單元測試方法既可以多個執行也可以鼠標右鍵單個執行。

 

    java單元測試示例:

 

public class JunitDemo {
    
    //1.  測試需要初始化的方法
    FileWriter writer;
    //對於多個方法執行前要執行的方法加上該注解,就可以提前執行
    @Before
    public void init() throws IOException{
        //true表示允許追加
        writer = new FileWriter("D:\\test.txt",true);
    }
    @Test
    public void writerHello() throws IOException {
        writer.write("hello");
    }
    @Test
    public void writeJava() throws IOException {
        writer.write("java");
    }
    @After
    public void close() throws IOException {
        writer.close();
    }
    
    //2. 測試無參方法
    @Test
    public void m() {        
        System.out.println(10 /0);
        System.out.println("running~~`");
    }

    public int sum(int i, int j) {        
        return i + j;
    }
    
    public double sum(double i, double j) {
        return i + j;
    }
    
    //3. 測試帶參數方法的方式
    @Test
    public void test() {
        System.out.println(sum(2,3));
        System.out.println(sum(2.0,3.0));
    }   
}

 

  總結:以上就是除了Debug之外,常用的兩種java調試方法。

 

            

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM