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单元测试的特点
- 在需要测试的方法之上要添加注解@Test
- @Before表示在测试方法之前执行,一般用于进行初始化操作
- @After表示在测试方法之后执行,一般用于进行资源的销毁和回收
- 三无原则
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调试方法。