@liayun
2016-06-24T06:26:40.000000Z
字数 1642
阅读 1555
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;@Beforepublic void before() { // 方法名无所谓System.out.println("before"); // 测试方法之前,提前初始化一些资源p = new Person();}@Testpublic void testRun() {p.run();}@Testpublic void testEat() {p.eat();}@Afterpublic 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 {@BeforeClasspublic static void beforeClass() {System.out.println("beforeClass");}@Testpublic void testRun() {Person p = new Person();p.run();}@Testpublic void testEat() {Person p = new Person();p.eat();}@AfterClasspublic 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():
@Testpublic 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);