关于dataProvider

时间:2013-01-18 18:33:55

标签: java testng

我创建了两个类。 first.javasecond.java。在first.java中,我定义了一些2到3个方法。在second.java中,我想通过创建first.java的实例来使用这些方法。我的情况如下:

  1. 点击第一种方法中的signbutton
  2. 使用dataprovider想要迭代,即在第二种方法中进行参数化
  3. 签出第三种方法。
  4. 这里,第一个和第三个方法,即@Test应该运行一次,第二个方法@Test(dataProvider)应该迭代所有依赖

    有没有办法在全局范围内声明或创建另一个类的实例?这样我可以在second.java中的所有方法中使用,还是有其他任何方法?

    我正在使用TestNGEcpliseWebdriver来执行。

    这就是我在做什么:

    @Test(dataProvider = "DP1")
      public void enteruserdetails(String username, String pass)
      {
               Spage spage = new Spage(driver);
               spage.clicksign();
               spage.enterdetails(username,pass);
               spage.signout(); 
      }
    

    我想将此测试分成三个,以便:

    1) spage.clicksign() will be done only once  
    2) spage.enterdetails(username,pass) will use DataProvider for iteration
    3)  spage.signout() will be done only once.
    

    然后如何创建类Spage spage = new Spage(driver)的实例;我必须在所有地方都这样做,例如@Before, @After and also in @Test或者有没有办法在全球范围内宣布它?此处spage.java用于sfirst.java

1 个答案:

答案 0 :(得分:0)

您可以考虑将您的设置方法放入BeforeXXX方法中,并在AfterXXX方法中进行拆解。在您的情况下,您可以使用使用beforeclass注释的方法登录,并且类似地使用使用afterclass的方法注销。

@BeforeClass
public void signin(){
//clicksign
}

@Test
//the enter details and verifications

@AfterClass
public void signOut(){
//clicksignout
}