Java 关于数据提供者

Java 关于数据提供者,java,testng,Java,Testng,我创建了两个类first.java和second.java。在first.java中,我定义了一些2到3的方法。在second.java中,我想通过创建first.java的实例来使用这些方法。我的情况如下: 在第一个方法中单击signbutton 使用dataprovider要在第二个方法中进行迭代,即参数化 签出第三种方法 这里,第一个和第三个方法,即@Test应该运行一次,第二个方法@Test(dataProvider)应该迭代所有这些方法 是否有任何方法可以全局声明或创建另一个类的实例?

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

  • 在第一个方法中单击signbutton
  • 使用dataprovider要在第二个方法中进行迭代,即参数化
  • 签出第三种方法
  • 这里,第一个和第三个方法,即@Test应该运行一次,第二个方法@Test(dataProvider)应该迭代所有这些方法

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

    我正在使用
    TestNG
    Ecplise
    Webdriver
    执行

    这就是我正在做的:

    @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=newspage(driver)
    ;我必须在所有的地方都这样做,比如说,
    @之前,@之后,还有@Test
    中,或者有没有办法在全球范围内声明?在这里,代码< > SPAGE。java < /java >用于<代码> sFave.java < /C> >

    < p>可以考虑将UR安装方法置于BEOFEXXX方法中,并在后XXX方法中拆卸。在您的例子中,您可以使用beforeclass注释signin In方法,同样地,使用afterclass注释signout In方法

    @BeforeClass
    public void signin(){
    //clicksign
    }
    
    @Test
    //the enter details and verifications
    
    @AfterClass
    public void signOut(){
    //clicksignout
    }
    

    我真的不知道你在问什么。您好,谢谢您的回复,那么如何创建类的实例,即在之前、测试之后和之后的每个注释中创建一个实例,或者可以为Spage(驱动程序)全局创建类的实例?我猜您要找的是工厂:。看看dataprovider和factory的示例。如果这不符合您的场景,那么请详细说明您在second.javahi中尝试执行的操作,在second.java中,我有一些方法可以在第1页上执行一些操作方法单击登录链接第2输入用户名密码执行一些操作(这里我将为用户数据提供程序)第3方法注销Hi,在second.java中,我有一些方法可以执行第1页的一些操作方法单击登录链接第2个方法输入用户名密码执行一些操作(这里我将使用用户数据提供者)第3个方法注销。在first.java页面中,我的场景是我想为三个方法编写三个单独的测试,其中一个方法的参数由数据提供者传递,我的问题是关于在每个测试中创建实例,还是我可以创建第二个的全局实例。java类和test1运行一次测试2应该使用dataprovider测试3,因为我不知道您要实现什么。为什么不能直接从testng调用包含所有测试的类?如果有一些数据必须传递给这些测试,比如驱动程序,那么就有一个threadlocal实例,然后u可以引用它,或者如果有任何其他数据,那么可以使用factory初始化该数据并创建类的实例。