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调试方法。

 

            

  

 

posted @ 2019-04-26 20:17  虎啸千峰  阅读(4757)  评论(0编辑  收藏  举报