как написать определение шага для заданного условия cucumber с использованием проекта maven

#maven #cucumber

#maven #cucumber

Вопрос:

Я новичок в Maven и не могу написать шаги для функции cucumber ниже

Особенность: Случайная строка. Сценарий: Группа без захвата, учитывая, что у меня красивый дом, учитывая, что у меня привлекательный дом, учитывая, что у меня большой дом

Ответ №1:

Я добавил код проекта, а также изображение структуры проекта maven ниже. Я считаю, что вы должны посмотреть несколько кратких руководств, связанных с cucumber basic. Чтобы вы понимали ключевые слова, которые мы обычно используем при создании файла функций. Если у вас есть какие-либо другие вопросы, тогда дайте мне знать, сэр. Я рад вам помочь.

Структура проекта Maven

Runner.java

 package runners;

import io.cucumber.testng.AbstractTestNGCucumberTests;
import io.cucumber.testng.CucumberOptions;

@CucumberOptions(features="features",glue="stepdefs")
public class Runner  extends AbstractTestNGCucumberTests
{

}
  

StepDefinition.java

 package stepdefs;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import io.cucumber.java.en.Given;
import io.cucumber.java.en.When;

public class StepDefinition 
{
    
    List<String> expectedList = new ArrayList<String>();
    String actualRandomString = "";

    @Given("^I have a random string - (.*)$")
    public void given(String randomString)
    {
        actualRandomString = randomString.trim();
    }
    
    @When("I check for the non matching group")
    public void when()
    {
        String regex = "I have a(n)? (beautiful|attractive) home";
          System.out.printf("Regex: %s, Input: %s%n", regex, actualRandomString);
            Matcher matcher = Pattern.compile(regex).matcher(actualRandomString);
            while (matcher.find()) {
                System.out.printf("Group zero, start= %s, end= %s, match= '%s'%n",
                        matcher.start(), matcher.end(), matcher.group());
                for (int i = 1; i <= matcher.groupCount(); i  ) {
                    System.out.printf("Group number: %s, start: %s, end: %s, match= '%s'%n%n",
                            i, matcher.start(i), matcher.end(i), matcher.group(i));
                }
            }
    }
    
    
    @When("I should get the desired outcome")
    public void then()
    {
        System.out.println("Verifying the outcome");
    }
    
}
  

случайная строка.функция

     Feature: Random String
      I want to use this feature file to test the functionality of random strings
    
      Scenario Outline: Verification of random string for non matching groups
        Given I have a random string - <Random Strings>
        When I check for the non matching group 
        Then I should get the desired outcome
        
        Examples: 
          | Random Strings |
          |I have a beautiful home|
          |I have an attractive home|
          |I have a big home|
  

pom.xml

   <project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>example</groupId>
        <artifactId>test</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <dependencies>
            <!-- Cucumber Java Maven Dependency -->
            <dependency>
                <groupId>io.cucumber</groupId>
                <artifactId>cucumber-java</artifactId>
                <version>5.6.0</version>
            </dependency>
            <dependency>
                <groupId>io.cucumber</groupId>
                <artifactId>cucumber-testng</artifactId>
                <version>5.6.0</version>
            </dependency>
    
            <dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <version>6.9.10</version>
            </dependency>
    
    
    
        </dependencies>
    </project>
  

Комментарии:

1. Большое спасибо.. Это сработало.. Я просматриваю видео и учебные пособия, чтобы изучить Cucumber..