@liayun
2016-06-24T14:26:40.000000Z
字数 1642
阅读 1318
java基础加强
@Before
:将此注解声明在方法上,表示在测试方法之前,提前初始化一些资源。@Test
:此注解声明在需要测试的方法之上。@After
:将此注解声明在方法上,表示测试方法完了之后需要释放一些资源。@BeforeClass
@AfterClass
首先描述一个类Person
:
public class Person {
public void run() {
System.out.println("run!!");
}
public void eat() {
System.out.println("eat!!");
}
}
再定义一个Person类的测试类:
public class Demo {
private Person p;
@Before
public void before() { // 方法名无所谓
System.out.println("before"); // 测试方法之前,提前初始化一些资源
p = new Person();
}
@Test
public void testRun() {
p.run();
}
@Test
public void testEat() {
p.eat();
}
@After
public void after() { // 方法名无所谓
System.out.println("after"); // 测试方法完了之后需要释放一些资源
p = null;
}
}
接着,选中需要测试的方法或将光标移到其上,右键→Run As
→Juint Test
,此时若在Juint
视图中显示绿条,即代表测试通过,若显示为红条,即代表测试不通过。
如果要运行该类中所有的测试方法,可选中该类或将光标移到其上,右键→Run As
→Juint Test
。结果为:
before
eat!!
after
before
run!!
after
注意:首次使用Juint测试,需要Jar包,所以会报错,这时就可使用快速修复(Ctrl+1
)快捷键。
观察以下代码,与上面的代码有何区别?
public class Demo {
@BeforeClass
public static void beforeClass() {
System.out.println("beforeClass");
}
@Test
public void testRun() {
Person p = new Person();
p.run();
}
@Test
public void testEat() {
Person p = new Person();
p.eat();
}
@AfterClass
public static void afterClass() {
System.out.println("afterClass");
}
}
如果运行该类中所有的测试方法,结果为:
beforeClass
eat!!
run!!
afterClass
先描述Person类:
public class Person {
public String run() {
System.out.println("run!!");
return "1";
}
public void eat() {
System.out.println("eat!!");
}
}
在Person类的测试类中定义一个testRun()
:
@Test
public void testRun() {
Person p = new Person();
// 断言
Assert.assertEquals("1", p.run());
}
Assert.assertEquals("2", p.run());
表示测试run()方法时希望它的返回值是"1",如果该方法的返回值和我期望的是一样的,测试通过,反之,测试不通过。
当然,断言的方法还有很多很多,如:
assertArrayEquals()
:如,Assert.assertArrayEquals(new int[]{1, 1}, new int[]{1, 2});
assertTrue()
:如,Assert.assertTrue(false);
assertFalse()
:如,Assert.assertTrue(false);