Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วิธีสร้าง Feature File สำหรับ Cucumber ใน Java (Eclipse)

ในบทความนี้ เราจะเรียนรู้ขั้นตอนการสร้าง Feature File สำหรับ Cucumber ใน Java โดยใช้ Eclipse IDE

Feature File คืออะไร?

Feature File เป็นไฟล์ที่เขียนเป็นภาษา Gherkin (Given/When/Then) อธิบายพฤติกรรมของระบบในรูปแบบที่อ่านง่าย ใช้เป็นเอกสารและ Test Case พร้อมกัน

ขั้นตอนการสร้าง (Step-by-Step)

ขั้นตอนที่ 1: สร้าง Maven Project (เหมือน Step Definition)

  1. File → New → Other → Maven Project
  2. เลือก maven-archetype-quickstart
  3. Group Id: Automation, Artifact Id: Cucumber

ขั้นตอนที่ 2: สร้าง Package สำหรับ Features

  1. คลิกขวาที่ src/test/java → New → Package
  2. ชื่อ Package: features
  3. คลิก Finish

ขั้นตอนที่ 3: สร้าง Feature File

  1. คลิกขวาที่ Package features → New → File
  2. ชื่อไฟล์: Login.feature (ต้องลงท้าย .feature)
  3. คลิก Finish

ขั้นตอนที่ 4: เขียน Feature File (Gherkin Syntax)

# language: en
Feature: User Login Functionality
  As a registered user
  I want to login to the application
  So that I can access my dashboard

  Background:
    Given User is on the login page

  Scenario: Successful login with valid credentials
    When User enters valid username "john.doe" and password "password123"
    And User clicks on login button
    Then User should be redirected to dashboard
    And User should see welcome message "Welcome John"

  Scenario: Failed login with invalid password
    When User enters valid username "john.doe" and password "wrongpass"
    And User clicks on login button
    Then User should see error message "Invalid credentials"
    And User should remain on login page

  Scenario Outline: Login with multiple users
    When User enters username "" and password ""
    And User clicks on login button
    Then User should be logged in
    Examples:
      | username    | password    |
      | user1       | pass1       |
      | user2       | pass2       |
      | admin       | admin123    |

คำสำคัญใน Gherkin (Keywords)

Keywordคำอธิบาย
Featureคุณสมบัติหลักของระบบ
Backgroundขั้นตอนก่อน Scenario ทุกอัน (รันทุกครั้ง)
Scenarioกรณีทดสอบเดี่ยว
Scenario Outlineกรณีทดสอบแบบ Parameterized (ใช้กับ Examples)
Examplesตารางข้อมูลสำหรับ Scenario Outline
Givenเงื่อนไขก่อนทดสอบ (Precondition)
Whenการกระทำ (Action)
Thenผลลัพธ์ที่คาดหวัง (Outcome)
And / Butต่อยอดขั้นตอน (อ่านง่ายขึ้น)

การเชื่อมกับ Step Definitions

สร้าง Runner Class:

package runners;

import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;
import org.junit.runner.RunWith;

@RunWith(Cucumber.class)
@CucumberOptions(
    features = "src/test/java/features",
    glue = "stepDefinitions",
    plugin = {"pretty", "html:target/cucumber-reports"}
)
public class TestRunner { }

โครงสร้างโปรเจกต์สมบูรณ์

Cucumber/
├── pom.xml
└── src/test/java/
    ├── features/
    │   └── Login.feature
    ├── stepDefinitions/
    │   └── StepDefinition.java
    └── runners/
        └── TestRunner.java