Junit中的@Before,@After,@BeforeClass和@AfterClass的用法

1.@Before,@After的例子
在一个测试类中如果含有多个测试方法,如:

public class Address_edit {

@Before

public void setUp() throws Exception {

         System.setProperty("webdriver.chrome.driver", "E:\\TINA\\2018\\chromedriver_win32\\chromedriver.exe");
       driver = new ChromeDriver();    

}

public void test001() throws InterruptedException {

}

public void test002() throws InterruptedException {

}

@After
    public void tearDown() throws Exception {
        System.out.println("Page title is: " + driver.getTitle());
        driver.quit();
    }

}

@Before:在跑测试test001,test002时候都会各执行一次@Before部分的代码。

@Beforeclass: 在类中只会被执行一次

@After:释放资源  对于每一个测试方法都要执行一次

@Afterclass:所有测试用例执行完才执行一次


一个JUnit4的单元测试用例执行顺序为: 
@BeforeClass -> @Before -> @Test -> @After -> @AfterClass; 
每一个测试方法的调用顺序为: 

@Before -> @Test -> @After; 

2.@Afterclass和@Beforeclass的例子

package com.example.tests;


import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver; 


public class Login {
    
    public static final String baseUrl = "https://XXXX.XXX.com";
    protected static WebDriver driver;
    
    @BeforeClass
     public static void setUp() throws InterruptedException, Exception {
         
        System.setProperty("webdriver.chrome.driver", "E:\\TINA\\2018\\chromedriver_win32\\chromedriver.exe");
         driver = new ChromeDriver();
         //打开微关爱网页
         driver.get(baseUrl);
         System.out.println("打开网址时的页面名称: " + driver.getTitle());
            
         //窗口最大化
         driver.manage().window().maximize(); 
         Thread.sleep(2000);
            
         //根据id获取登录的控件
         WebElement Login = driver.findElement(By.xpath("//div[@class='personal-navigation-container hidden-phone']//ul//li[@class='list-item sign-in']/a"));
         Login.click();
            
         Thread.sleep(2000);
         //输入用户名和密码
         driver.navigate().refresh();
         WebElement Username = driver.findElement(By.xpath("//div[@class='control-group login-input']//input[@class='field']"));
         Thread.sleep(2000);
         WebElement Password = driver.findElement(By.id("_59_WAR_forgecartportlet_password"));            
         WebElement Login_botton = driver.findElement(By.xpath("//button[@type='submit']"));
         Username.clear();
         Username.sendKeys("XXXX@YYYY.com");
         Password.sendKeys("XXXX");
         Login_botton.click();
         System.out.println("登陆后的页面名称: " + driver.getTitle());
    }
    
    @AfterClass
    public static void tearDown() throws Exception {
        System.out.println("Page title is: " + driver.getTitle());
        driver.quit();
        
    }

}

import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.Select;


public class Address_Test extends Login   {
    
    @Test
    //添加新地址

    public void test001() throws InterruptedException {

      }

}
原文:https://blog.csdn.net/dingjiajia_949/article/details/80183828 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这些注解都是JUnit测试框架的注解,用于声明测试用例方法和测试执行的前置条件、后置处理等。 - `@Test`:用于标注测试用例方法,JUnit框架会自动执行被该注解标记的方法。 - `@BeforeClass`:用于标注在所有测试用例执行前需执行的方法,通常用于执行一些初始化操作,被该注解标记的方法必须是静态方法。 - `@Before`:用于标注在每个测试用例执行前需执行的方法,通常用于执行一些初始化操作。 - `@After`:用于标注在每个测试用例执行后需执行的方法,通常用于执行一些清理操作。 - `@AfterClass`:用于标注在所有测试用例执行后需执行的方法,通常用于执行一些清理操作,被该注解标记的方法必须是静态方法。 下面是使用示例代码: ```java import org.junit.*; public class ExampleTest { @BeforeClass public static void beforeClass() { // 执行一些初始化操作 System.out.println("Before Class"); } @Before public void before() { // 执行一些初始化操作 System.out.println("Before"); } @Test public void test1() { // 执行测试用例1 System.out.println("Test1"); } @Test public void test2() { // 执行测试用例2 System.out.println("Test2"); } @After public void after() { // 执行一些清理操作 System.out.println("After"); } @AfterClass public static void afterClass() { // 执行一些清理操作 System.out.println("After Class"); } } ``` 在上面的示例,`@BeforeClass`注解所标注的方法会在所有测试用例执行前执行一次,`@Before`注解所标注的方法会在每个测试用例执行前执行一次,`@Test`注解所标注的方法表示一个测试用例方法,`@After`注解所标注的方法会在每个测试用例执行后执行一次,`@AfterClass`注解所标注的方法会在所有测试用例执行后执行一次。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值