利用JUnit测试程序是非常方便的,而不需要像以前用main方法来测试程序。
下面介绍一下如何使用JUnit来测试我们想要测试的程序代码:
示例代码:
public class Person {
public void run()
{
System.out.println("run");
}
public void eat()
{
System.out.println("eat");
}
}
具体做法如下:
1.另新建一个java文件TestDemo.java
@Test
public void test1(){
Person p=new Person();
p.run();
}
注意:我们在test1()方法上加上了@Test 关键字!
然后在outline视图中找到TestDemo,TestDemo下列有它的所有的方法.
我们在outline视图选中test1()方法, 右键,选中 runas ->JUnit Test 就可以对这个方法进行测试。这是在测试程序时经常使用的。
2.关键字@Before @After
@Before
public void before(){
System.out.println("before");
}
@Test
public void test1(){
Person p=new Person();
p.run();
}
@After
public void after(){
System.out.println("after");
}
注意:我们一样测试方法test1(),但是测试结果却如下:
before
run
after
分析:当我们只测试test1()时,会自动调用before()和after()方法(方法名可以任意),这是因为他们分别被关键字@Before @After 修饰。
被 @Before 修饰的方法会在test1()方法之前被调用,被@After修饰的方法会在test1()被执行后再执行。
这样当我们要测试的方法要使用的一些资源要提前加载时,就可以放在被@Before 修饰的方法中;释放资源放在被@After修饰的方法中。
3.关键字 @BeforeClass @AfterClass
@BeforeClass public static void beforeClass(){ System.out.println("before class"); } @Test public void test1(){ Person p=new Person();
} @AfterClasspublic static void afterClass(){System.out.println("after class");}p.run();
同样我们只测试方法test1()时
结果:
before class
run
after class
分析:当在加载这个测试类之前,会先执行被@BeforeClass 关键字修饰的方法,然后再执行test1(),最后执行被@AfterClass 关键字修饰的方法4.分析@ Before @BeforeClass @After @AfterClass 的区别
示例代码:
@BeforeClass public static void beforeClass(){ System.out.println("before class"); } @Before public void before(){ System.out.println("before"); } @Test public void test1(){ Person p=new Person(); p.run(); } @Test public void test2(){ Person p=new Person(); p.eat(); } @After public void after(){ System.out.println("after"); } @AfterClass public static void afterClass(){ System.out.println("after class"); }
在outline视图中选中TestDemo类,并右键t选中runas->JUnit Test 进行测试。
结果:
before class
before
run
after
before
eat
after
after class
当每次执行一次被@Test修饰的方法时,都会执行一次@Before @After
被@After @Before修饰的方法只会在第一次类加载时才会执行一次
注意:被@After @Before修饰的方法只能是static方法