zoukankan      html  css  js  c++  java
  • Java接口自动化——Before/After注解、Parameters注解和DataProvider注解

    上一篇里面提到了Test注解,本篇简单介绍下Before/After注解、Parameters注解和DataProvider注解。

    Before/After注解

    注解内容描述如下:

    @BeforeSuite:带有该注释的方法将在该套件中的所有测试运行之前运行。
    @AfterSuite:带有该注释的方法将在该套件中的所有测试运行之后运行。
    @BeforeTest:带有该注释的方法将在运行属于标记内的类的任何测试方法之前运行。
    @AfterTest:带有该注释的方法将在运行属于标记内的类的任何测试方法之后运行。
    @BeforeClass:带有该注释的方法将在调用当前类的第一个测试方法之前运行。
    @AfterClass:带有该注释的方法将再当前类中的所以测试方法运行之后运行。
    @BeforeMethod:带有该注释的方法将在当前类中的每个测试方法之前运行。
    @AfterMethod:带有该注释的方法将在当前类中的每个测试方法之后运行。

    举例:

    package com.forest.testng;
    
    import org.testng.annotations.AfterClass;
    import org.testng.annotations.AfterMethod;
    import org.testng.annotations.AfterSuite;
    import org.testng.annotations.AfterTest;
    import org.testng.annotations.BeforeClass;
    import org.testng.annotations.BeforeMethod;
    import org.testng.annotations.BeforeSuite;
    import org.testng.annotations.BeforeTest;
    import org.testng.annotations.Test;
    
    public class Demo3 {
        
        @BeforeSuite
        public void f1() {
            System.out.println("before suite");
        }
        
        @AfterSuite
        public void f2() {
            System.out.println("after suite");
        }
        
        @BeforeTest
        public void f3() {
            System.out.println("before test");
        }
        
        @AfterTest
        public void f4() {
            System.out.println("after test");
        }
        
        @BeforeClass
        public void f5() {
            System.out.println("before class");
        }
        
        @AfterClass
        public void f6() {
            System.out.println("after class");
        }
        
        @BeforeMethod
        public void f7() {
            System.out.println("before method");
        }
        
        @AfterMethod
        public void f8() {
            System.out.println("after method");
        }
        
        @Test
        public void test1() {
            System.out.println("Demo3...test1...");
        }
        
        @Test
        public void test2() {
            System.out.println("Demo3...test2...");
        }
    }

    运行结果如图:

    Parameters注解

    可以用作参数传递。

    举例:

    编写class文件demo如下:

    package com.forest.testng;
    import org.testng.annotations.Parameters;
    import org.testng.annotations.Test;
    public class Demo {
          
          @Test
          @Parameters({"firstName","lastName"})
          public void test1(String fn,String ln) {
                System.out.println("Demo...test...");
                System.out.println(fn + "," + ln);
          }
    }

    上述文件单独运行肯定会报错。下面我们在testng.xml文件中如下编写:

    <?xml version="1.0" encoding="UTF-8"?>
    <suite name="测试项目" parallel="false">
      <test name="测试模块">
        <classes>
          <class name="com.forest.testng.Demo5" /> </classes> </test> <parameter name="firstName" value="小燕子" /> <parameter name="lastName" value="永琪" /> </suite>

    选中testng.xml文件,右键选择Run As-->TestNG Suite即可运行查看结果。

    DataProvider注解

    DataProvider注解传递参数更为灵活。示例如下:

    package com.forest.testng;
    import org.testng.annotations.DataProvider;
    import org.testng.annotations.Test;
    public class Demo {
          
          @Test(dataProvider = "datas")  //引用名称叫“datas”的数据
          public void test1(String fn,String ln) {
                System.out.println(fn + "." + ln);
          }
          
          @DataProvider(name="datas")  //给数组命名成datas
          public Object[][] datas() {
                Object[][] datas = {
                            {"七仙女","董永"},
                            {"织女","牛郎"}
                };
                return datas;
          }
    }

    运行结果为:

    七仙女,董永
    织女,牛郎
    PASSED: test1("七仙女", "董永")
    PASSED: test1("织女", "牛郎")
    ===============================================
        Default test
        Tests run: 2, Failures: 0, Skips: 0
    ===============================================
    
    ===============================================
    Default suite
    Total tests run: 2, Failures: 0, Skips: 0
    ===============================================
  • 相关阅读:
    android 管理wifi
    andriod 剪贴板操作
    andriod绘制图形
    andriod读写XML
    androd 获得wifi列表
    一个小时内学习SQLite数据库
    Android 使用SQLite本地数据库
    Android可伸缩列表ExpandableListView
    三甲医院涉医疗反腐,今年已有 149 位被查!
    2015各地区顶尖中学排行榜
  • 原文地址:https://www.cnblogs.com/daydayup-lin/p/14966701.html
Copyright © 2011-2022 走看看