2
public class DemoTest {

private static final ThreadLocal<WebDriver> webDriverThreadLocal= new InheritableThreadLocal<>();
private String baseUrl;
 Random random = new Random();
 int no;
 private final Map<Integer, String> map =new LinkedHashMap<Integer, String>();

@Test(dataProvider = "dp1")
public void f(Integer n, String s) {
 WebDriver driver = webDriverThreadLocal.get();
  no= random.nextInt(4);
 map.put(no, "1234567");
}

@Test(dependsOnMethods = {"f"}, dataProvider = "dp2")

  public void f1(Integer uname, String password){

  System.out.println("uname:"+uname+" password:"+password);
  System.out.println("In f1 id:"+Thread.currentThread().getId());
}

@BeforeMethod
 public void beforeMethod()  {

  WebDriver driver= new FirefoxDriver();
//  driver = ThreadGuard.protect(new FirefoxDriver());    
  driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
  driver.manage().window().maximize();
  webDriverThreadLocal.set(driver);
  System.out.println("Before method id:"+Thread.currentThread().getId());

}

 @AfterMethod
  public void afterMethod() {
  WebDriver driver = webDriverThreadLocal.get();
      System.out.println("After method id:"+Thread.currentThread().getId());
      System.out.println("");
  if(driver != null ) {
  driver.quit();
 // driver.close();
  }

 }

 @DataProvider(name ="dp1" ,parallel=true)
 public Object[][] dp() {
 return new Object[][] {
  new Object[] { 1, "a" },
  new Object[] { 2, "b" },
  new Object[] { 3, "c" },
  new Object[] { 4, "d" },

  };
 }

 @DataProvider(name="dp2" , parallel=true)
 public Iterator dp2() {
   return this.map.entrySet().iterator();

 }
  • テスト f1 はテスト f に依存しています。
  • f1 は、テスト f1 に入力される乱数と文字列を生成します。
  • テスト f からテスト f1 に map Iterator を渡したいと思います。

これは私がこれまでに試したことです。

次のエラーが表示されます。

java.lang.ClassCastException: java.util.LinkedHashMap$Entry を [Ljava.lang.Object; にキャストできません。

これを解決するには?

4

1 に答える 1