TestNG框架和新关键字

时间:2014-12-21 19:58:55

标签: java testng

我是TESTNG框架的新手。在这个框架中没有主要方法。因此我怀疑,我们可以使用new关键字在测试套件中的任何位置创建对象吗?或者是否存在一个基本规则,即对象只能在某些地方实例化(如内部,@ beforesuite,@ test和其他的testng注释)?

在下面的代码中,当我在类中使用new关键字(Ideal objIdeal = new Ideal();)时它会失败但是当我把它放在@test注释方法(登录或注销)中时,它会通过。因此,在使用Testng框架时,在类中实例化对象的基本拇指规则是什么。

package testing.ideal;

public class Application {

    public String strURL;

    public Application() {
        this.strURL = Ideal.strURL;
        System.out.println("the url is--" + this.strURL);
    }

}

package testing.ideal;
        import org.testng.annotations.*;

public class Ideal
        extends Application {
    public static String strURL = "XXX";
    Ideal objIdeal = new Ideal();

    @Test
    public void login() {
        System.out.println("This is an testng Method");
    }

    @Test
    public void logout() {
        System.out.println("This is an testng Method");
    }

}

/* This is Testng XML*/
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel = "none">
    <test name="login" >
        <classes>
            <class name="testing.ideal.Ideal">
            </class>
        </classes>
    </test>
</suite>

1 个答案:

答案 0 :(得分:0)

您可以使用注释:

@BeforeSuite/@AfterSuite在特定套件中的所有测试运行之前/之后运行一些逻辑。

@BeforeMethod/@AfterMethod在每个测试方法之前/之后运行一些逻辑。

@BeforeGroups\@AfterGroups在属于该组的第一个/最后一个测试方法之前/之后运行一些

@BeforeTest\@AfterTest<test>

中包含的任何测试方法之前/之后运行一些逻辑

因此,在您的测试类中,创建一个方法,例如setUp创建objIdeal

的实例
 @BeforeTest
  public void setUp()
  {
     objIdeal = new Ideal();  
  }