4

私は Selenium WebDriver と JUnit にかなり慣れていません。Web アプリをテストしていますが、UI をテストするために Junit でクラスの設計が正しいのか疑問に思っていました。
人々が構成を使用した例を見てきました。

どんなアドバイスでも大歓迎です

Java クラス

public class OverviewPage {

private WebDriver driver;
private String URL = "http://www.google.com";
public String searchQuery = "BBC";

OverviewPage(WebDriver driver){
    this.driver = driver;
    driver.get(URL);
    if(!"Login".equals(driver.getTitle())){
       throw new IllegalStateException("Wrong site");

    }
}

By searchBox = By.id("siteSearchField");
By submitSearch = By.cssSelector("button.btn.searchIco");

 public OverviewPage searchBox(String findADealer){
     driver.findElement(searchBox).sendKeys(findADealer);
        return this;
}

public OverviewPage searchBoxDisplayed(){
    driver.findElement(searchBox);
    return this;
}



public FindADealerPage searchResults(){
    driver.findElement(searchBox).sendKeys(searchQuery);
    driver.findElement(submitSearch).click();
    String search = driver.getPageSource();
    boolean searchResults = search.contains(searchQuery);
    return new FindADealerPage(driver);
}

}

ジュニット

 public class OverviewPageTest {

 private WebDriver driver;
 public String searchQuery = "find a dealer";

By searchBox = By.id("siteSearchField");
By submitSearch = By.cssSelector("button.btn.searchIco");

@Before
public void setUp(){

 driver = new HtmlUnitDriver();
 driver.get("http://www.google.com");
}



@After
public void tearDown(){
    driver.quit();
}

@Test
public void checkTitle(){
    Assert.assertEquals("product edit", driver.getTitle());
}

@Test
public void checkSearchBoxExists(){
    boolean searchBoxes =  driver.findElement(searchBox).isDisplayed();
   Assert.assertTrue(searchBoxes);
}

@Test
public void searchResults(){
    driver.findElement(searchBox).sendKeys(searchQuery);
    driver.findElement(submitSearch).click();
    String search = driver.getPageSource();
    boolean searchResults = search.contains(searchQuery);
    Assert.assertTrue(searchResults);
}

}

4

1 に答える 1