您的位置:首页 > 其它

Junit4的使用(@Test @Before @After @BeforeClass @AfterClass @Ignore)

2015-10-28 17:44 543 查看
@BeforeClass:类前执行,针对所有测试,只执行一次,且必须为static void。

@Before:方法前执行,多个Test方法时执行多次。非静态。

@Test:测试方法,在这里可以测试期望异常和超时时间。非静态。

@After:释放资源。非静态。

@AfterClass:类后执行,针对所有测试,只执行一次,且必须为static void。

@Ignore:忽略的测试方法。

package prs.rfh.ex.junit;
import org.junit.*;
/**
*
* @author renfh
* @description 测试test、before、after、beforeclass、afterclass的执行时机和顺序
*/
public class TestJunit {
@Test
public void testOne(){
System.out.println("<Test1>");
}
@Test
public void testTwo(){
System.out.println("<Test2>");
}
@Ignore
@Test
public void testThree(){
System.out.println("<test3>");
}

@Before
public void BeforeOne(){
System.out.println("BeforeOne");
}
@After
public void AfterOne(){
System.out.println("AfterOne");
}
@Before
public void BeforeTwo(){
System.out.println("BeforeTwo");
}
@After
public void AfterTwo(){
System.out.println("AfterTwo");
}
@BeforeClass
public static void BeforeClassOne(){
System.out.println("BeforeClassOne");
}
@BeforeClass
public static void BeforeClassTwo(){
System.out.println("BeforeClassTwo");
}
@AfterClass
public static void AfterClassOne(){
System.out.println("AfterClassOne");
}
@AfterClass
public static void AfterClassTwo(){
System.out.println("AfterClassTwo");
}

}
执行结果:

BeforeClassTwo
BeforeClassOne
BeforeTwo
BeforeOne
<Test1>
AfterOne
AfterTwo
BeforeTwo
BeforeOne
<Test2>
AfterOne
AfterTwo
AfterClassOne
AfterClassTwo


由以上执行结果可以看出,对于多个before的执行顺序,按照代码的反序执行,而after则是顺序执行。

@Ignore则会使Test无效。

此外,关于这几个标签的继承性研究可以参照 http://blog.163.com/bobile45@126/blog/static/9606199220129682521489/
另:今天犯了个低级错误,引入@Test时无论如何不能提示import org.junit.*; 找了半天,发现我的类名就叫Test,和这个注解名冲突了。改过来就好。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: