一、Junit测试
它是一个java程序员用的最多的测试的框架.不管是javaee项目, 还是android 项目, 基本上用的测试框架都是junit。一个好的软件是测出来的.
使用junit测试 , 是不需要去写main函数的。
测试的条件和方法是:
- 在写测试方法的时候, 必须要public, 并且返回值必须是void, 并且方法中不能接受任何的参数
- 通常, 使用Assert类来对测试的结果进行断言, 从而来判定是否通过测试。
- 当要执行Test类中所有的Test方法时,可以右击类,把类中所有的@方法都执行。
- 测试类要单独建一个包,命名一般是:Test+测试的类
测试类中常用的语句有:
- @Test:
- @Test(timeout=10):是否是1秒内运行完的
- @Test(expected = java.lang.ArithmeticException.class):如果抛出了指定的异常,那是正常情况。
- @BeforeClass、@AfterClass:类加载前和类加载后运行的方法,两个的方法都必须是static的
- @Before、@After,用于所有的@Test方法执行前、执行后一定会执行的方法,通常:
- @Before用于统一资源的声明
- @After用于资源的关闭,相当于是try/catch的finaly
- AAssert.assertEquals(expected,actual):实际开发过程中, 在junit测试框架中,专门提供一个叫做Assert断言的类,断言正确才会正常(声明异常除外);
- @Test:
- 定义要测试的类及方法
public class Student {
public int add(int i, int j){
return i+j;
}
public int divide(int i, int j ){
return i/j;
}
}
- 测试类用来测试
public class TestStudent {
@BeforeClass//用于类加载前的测试,一定要是静态的
public static void beforeClass() {
System.out.println("beforeClass ");
}
Student s;
// 加了 before 之后, 那么 junit 测试 框架 就会在执行 每个 具体的 @Test 这样的方法之前 执行这个
// beforeMethod方法
@Before
public void beforeMethod() {
System.out.println("beforeMethod");
// new Student
s = new Student();
}
@Test(timeout = 1)//timeout后面数字单位是毫秒,只有在相应时间内执行完才会通过,用于测试效率
public void testAdd() {
// 测试 student 类中的 add 方法
int result = s.add(1, 2);
System.out.println(" testAdd =====");
// 注意: 实际开发过程中, 我们 会 对 测试 的结果 进行 断言 ,
// 在junit 测试 框架中 , 专门 提供 一个叫做 Assert 断言 的类,
Assert.assertEquals(2, result);
}
@Test(expected = java.lang.ArithmeticException.class)//用于测试抛出异常的情况
public void testDivide() {
int result = s.divide(3, 0);
System.out.println("testDivide======");
}
// 在每个 @Test执行 完成 之后 执行
@After
public void afterMethod() {
// 释放资源
s = null;
System.out.println("afterMethod");
}
@AfterClass//类中方法全部测试完后进行的方法,也必须是static
public static void afterClass() {
System.out.println("afterClass");
}
}
二、Debug调试
- 应用场景:
- 用来实时的跟踪程序的运行情况.
- 在遇到bug的时候,添加断点,实时的查看变量的值,从而快速解决问题.
- 使用debug去搞清楚程序的逻辑…
- 前提条件:
- 必须要将tomcat服务器以debug方式运行
- 在程序正常的会执行的代码的地方添加断点.