Đều cùng là maven dependencies, nhưng io.cucumber và info.cukes khiến nhiều bạn khi mới tiếp cận với Cucumber trở nên gặp nhiều trắc trở rằng không biết nên dùng library nào. Nay dthshare sẽ giúp các bạn giải đáp thắc mắc về vấn đề này nhé.

Cucumber và Cucumber JVM

Cucumber là một open-source Test Automation Framework được dùng cho Behavior-driven development. Cucumber dùng một ngôn ngữ nghiệp vụ có thể đọc được tựa như ngôn ngữ tự nhiên: Gherkin để cho sự tiện lợi trong việc trao đổi giữa các team với nhau.

Cucumber JVM là một port chính thức của bên JAVA. Mỗi Gherkin statement (step) đều được “glue” (dẫn đến) một method để thực thi nó. Ngôn ngữ được dùng cho Gherkin (có thể là tiếng Anh, Pháp,..) đều được glue thông qua những annotation hay regex.

For Ex:

Và những annontation đó hay regex đều được tim thấy thông qua Cucumber JVM.

Sự khác biệt giữa io.cucumber và info.cukes

io.cucumber

Vậy như ta đã biết mỗi library mà muốn sử dụng trong JAVA thường được add vào thông qua Maven (hoặc có thể add bằng JAR hay những cách khác). Nhưng hiện tại, lại tồn tại 2 Maven Group Id là io.cucumber và info.cukes để sử dụng được Cucumber JVM. Vậy sự khác biệt của chúng là gì?

Cả 2 đều là Maven groups id. Nhưng info.cukes được dùng cho version Cucumber từ 1.2.5 trở về trước mà io.cucumber thì được chứa nó version mới nhất của Cucumber (từ version 2.0.0 trở đến version hiện tại)

Trong năm 2017, Cucumber JVM 2.0 đã được công bố và mang vào sử dụng cho các project Cucumber JVM. Và version mới đó ta có thể dễ dàng tìm được trong Maven Group Id: io.cucmber. Phiên bản cũ hơn (từ 2.0 trở về trước: 1.x) có thể tìm được trong Maven Group Id: info.cukes. 

Nếu các bạn đang tạo mới cho bản thân mình một dự án sử dụng Cucumber JVM thì mình có thể khuyên dùng Maven Group ID: io.cumber để có những trải nghiệm và support mới nhất đến từ Cucumber JVM.

Mong với những thông tin trên dthshare đã có thể giúp bạn hiểu rõ hơn về io.cucumber và info.cukes