本文主要是介绍Junit入门到掌握-7-JUnit基础-注解BeforeClass和AfterClass和Ignore,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前面一篇学习了Before和After这两个注解,这两个注解是作用在每一个@Test标注的方法上,每次运行方法都需要运行一次Before和一次After。这篇来学习一个类似的,就是作用范围变成了Class,叫BeforeClass和AfterClass, 特点就是,每运行一次class文件,只执行一次BeforeClass和AfterClass, 这两个注解标注标注的方法是Java中的静态方法。
1.BeforeClass和AfterClass
看看我们目前学习这几个注解的作用范围和层次结构。
特点记住:BeforeClass和AfterClass是静态方法,一个类中只运行一次。
2.代码练习举例
确实目前没什么好场景来使用BeforeClass和AfterClass,如果是Selenium自动化测试,我们会用到这个特点去设计我们用例执行方式。下面只好用打印语句来运行这两个静态方法的介绍。
package test;
import static org.junit.Assert.*;import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;import com.anthony.protein.TrackingService;public class TrackingServiceTests {private TrackingService ts;@BeforeClasspublic static void before() {System.out.println("Before class, Onln Once");}@AfterClasspublic static void after() {System.out.println("After class, only once");}@Beforepublic void setup() {System.out.println("Before Method");ts = new TrackingService();}@Afterpublic void tearDown() {System.out.println("After Method");}@Testpublic void newTrackingServiceTotalIsZero() {assertEquals("Tracking service total was not zero", 0, ts.getTotal());}@Testpublic void whenAddingProteinTotalIsIncreaseByAmount() {ts.addProtein(10);assertEquals(10, ts.getTotal());}@Testpublic void whenRemovingProteinTotalRemainsZero() {ts.removeProtein(5);assertEquals(0, ts.getTotal());}}
运行结果
Before class, Onln Once
Before Method
After Method
Before Method
After Method
Before Method
After Method
After class, only once
3.Ignore注解
字面意思忽略意思,例如在单元测试过程中,有一个用户跑失败了,debug了很久没有找到解决办法,这个时候,我们就可以使用Ignore让这个用例不跑,不影响其他用例执行。
package test;
import static org.junit.Assert.*;import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;import com.anthony.protein.TrackingService;public class TrackingServiceTests {private TrackingService ts;@BeforeClasspublic static void before() {System.out.println("Before class, Onln Once");}@AfterClasspublic static void after() {System.out.println("After class, only once");}@Beforepublic void setup() {System.out.println("Before Method");ts = new TrackingService();}@Afterpublic void tearDown() {System.out.println("After Method");}@Testpublic void newTrackingServiceTotalIsZero() {assertEquals("Tracking service total was not zero", 0, ts.getTotal());}@Testpublic void whenAddingProteinTotalIsIncreaseByAmount() {ts.addProtein(10);assertEquals(10, ts.getTotal());}@Test@Ignorepublic void whenRemovingProteinTotalRemainsZero() {ts.removeProtein(5);assertEquals(0, ts.getTotal());}}
最后一个用例是不会被执行的。
这篇关于Junit入门到掌握-7-JUnit基础-注解BeforeClass和AfterClass和Ignore的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!