0

私は2つのクラスを作成しました。first.javasecond.java。ではfirst.java、2 つから 3 つのメソッドが定義されています。ではsecond.java、そのインスタンスを作成してこれらのメソッドを使用したいと思いますfirst.java。私のシナリオは以下のようなものです:

  1. 最初のメソッドでサインボタンをクリックする
  2. dataprovider を使用して反復したい、つまり 2 番目の方法でパラメータ化したい
  3. サインアウト 3 番目の方法。

ここでは、1 番目と 3 番目のメソッド、つまり @Test は 1 回実行する必要があり、2 番目のメソッド @Test(dataProvider) はすべて反復する必要があります。

別のクラスのインスタンスをグローバルに宣言または作成する方法はありますか? のすべてのメソッドで使用できるようにするには、second.javaまたは他の方法はありますか?

TestNGEcpliseおよびWebdriver実行に使用しています。

これは私がしていることです:

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

このテストを 3 つに分割して、次のようにします。

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ます。

4

1 に答える 1

0

urセットアップメソッドをBeforeXXXメソッドに配置し、ティアダウンをAfterXXXメソッドに配置することを検討できます。あなたの場合、beforeclassで注釈が付けられたsigninメソッドと、同様にafterclassで注釈が付けられたsignoutinメソッドを持つことができます。

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

@Test
//the enter details and verifications

@AfterClass
public void signOut(){
//clicksignout
}
于 2013-01-19T07:08:39.673 に答える