Nếu ai đã đi theo BDD (Behavior Driven Development) - phát triển theo hướng hành vi thì cũng không lạ lẫm gì với Cucumber.
Hôm nay chúng ta sẽ học cách cài đặt, sử dụng cũng như viết những dòng code đầu tiên với cucumber - First code cucumber and Java
Để có thể áp dụng thành công ví dụ này, điều kiện trước tiên là cần có 1 IDE để code java (eclipse hay Idea) và máy tính đã cài sẵn JDK, tham khảo tại bài viết sau nếu các bạn chưa cài đầy đủ.
Bài hướng dẫn này tôi dùng Eclipse vì nó khá phổ biến với giới lập trình java
Nội dung bài viết như sau:
- Cài plugin Cucumber cho Eclipse
- Tạo project với Maven
- Tạo file feature chứa các hành vi của người dùng
Cài đặt cucumber cho eclipse:
Từ menu Help -> Eclipse Marketplace. Sau đó tìm kiếm với từ khoá cucumber và cài đặt - nhớ restart Eclipse để hoàn tất quá trình cài
> Tạo Project với Maven
Tiếp theo chúng ta sẽ tạo 1 project Maven từ menu File của eclipse như sau
File -> New -> Other
chọn Maven Project -> Next
- Group ID thì thường hay điền kiểu tên miền như vậy
- Artifact ID là tên của project
- Version thì mặc định cũng đc
Tại project vừa tạo, click đúp vào file POM.XML và chọn tab pom.xml như trong ảnh, thêm đoạn code sau vào trước dòng </project>
> Định nghĩa file Feature
Tại thư mục src/test/resources, tại 1 file có định dạng demo.feature như sau:Feature: Demo feature Scenario: Finding some cheese Given I am on the Google search page When I search for "Cheese" Then the page title should start with "cheese"
Tiếp đó thì viết code cho các phương thức đó như sau:
package democucumberr; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.support.ui.ExpectedCondition; import org.openqa.selenium.support.ui.WebDriverWait; import cucumber.api.java.After; import cucumber.api.java.en.Given; import cucumber.api.java.en.Then; import cucumber.api.java.en.When; public class Demo { WebDriver driver = new FirefoxDriver(); @Given("I am on the Google search page") public void i_am_on_the_Google_search_page() { driver.get("https:\\www.google.com"); } @When("I search for {string}") public void i_search_for(String string) { WebElement element = driver.findElement(By.name("q")); element.sendKeys(string); element.submit(); } @Then("the page title should start with {string}") public void the_page_title_should_start_with(String string) { new WebDriverWait(driver, 10L).until(new ExpectedCondition<Boolean>() { public Boolean apply(WebDriver d) { return d.getTitle().toLowerCase().startsWith("cheese"); } }); } @After() public void closeBrowser() { driver.quit(); } }
Tiếp tục quay lại file feature, chạy với Cucumber để xem kết quả
package democucumberr; import org.junit.runner.RunWith; import cucumber.api.CucumberOptions; import cucumber.api.junit.Cucumber; @RunWith(Cucumber.class) @CucumberOptions(features = "C:\\Users\\hainv\\My Documents\\LiClipse Workspace\\democucumberr\\src\\test", plugin = { "pretty", "html:target/cucumber-html-report" }, tags = {}) public class Runner { }
sau đó chạy file Runner với Junit để có kết quả ( chuột phải vào khung soạn thảo code của Runner.java, chọn Run As -> Junit)
Các bạn có thể tải project demo tại đây để em chi tiết
Hẹn gặp các bạn ở bài tiếp theo
0 comments:
Post a Comment