Java- 断言及程序的测试JUnit

断言(assert)

  • 断言的格式:
    • assert 表达式;
    • assert 表达式: 信息;
  • 在调试程序时,如果表达式不为true,则程序会尝试异常,并输出相关的错误信息。起到对程序的检测的作用。
public class Assertion{
    public static void main(String[] args) {
        assert hypotenuse(3, 4)==5 : "algorithm error";
    }

    static double hypotenuse(double x, double y){
        return Math.sqrt(x*x + y*y + 1);
    }
}

Assert的编译与运行

  • 编译
    • 只有在JDK1.4及以上的版本中才可以使用断言
    • 在1.4以前的版本中,需要通过-source选项来指明版本
  • 运行
    • 在运行时,要使assert起作用,则在运行时,要使用-ea-enableassertions选项
      Assert的编译与运行

程序的测试及JUnit

  • 程序的修改是经常要进行的过程,必须保证程序在修改后其结构仍然是正确的
  • 在编写程序代码的同时,还编写测试代码来判断这些程序是否正确
  • 这个过程称为“测试驱动”的开发过程
  • 从而保证了程序的开发效率

程序中的错误

  • 程序中的错位可以分为三大类
    1. 语法错位(Syntax error)
      • 编辑、编译器发现
    2. 运行错误(Runtime error)
      • 异常处理机制
    3. 逻辑错误(Logic error)
      • 调试(debug)、单元测试(unit test)
      • -

单元(JUnit) 测试

  • 在eclipse中
    • 项目右键 - New - Junit Test Case
  • @Test来标注测试函数
  • 在测试中常用的语句如下:
    • fail(msg); // 表示程序出错
    • assertEquals(arg1, arg2);// 表示程序要保证两个参数要相等
    • assertNull(arg); // 表示参数要为null

程序调试(debug)

程序的调试

  • 在IDE中,用debug as…
  • 进入到调试视图(debug perspective)

调试的手段

  1. 断点(breakpoint),程序的暂停点
  2. 跟踪(trace),观察程序的执行流程
    • 逐语句执行,会进入调用的函数体
    • 逐过程执行,跳过进入调用的函数体
    • 跳出函数
    • 运行到光标处
  3. 监视(watch),变量的变化过程
    • 即时监视,鼠标指向变量,即可显示
    • 快速监视,右键- inspector
    • 添加监视,右键 - watch
    • 还可以看:调用堆栈等

你可能感兴趣的:(JAVA学习之旅)