Не знаю, как преобразовать «Recipe4» в edu.ncsu.csc326.кофеварка.Рецепт

#java #eclipse #automated-tests #cucumber

Вопрос:

Мой сценарий файла функций таков:

 When Recipe4 is added to the recipe book
 

И соответствующий шаг-это :

 @When("^(.*) is added to the recipe book$")
public void addRecipeTest(Recipe recipe) throws RecipeException {
    //Set up 
            
            recipe = new Recipe();
            recipe.setName("Hot Chocolate");
            recipe.setAmtChocolate("4");
            recipe.setAmtCoffee("0");
            recipe.setAmtMilk("1");
            recipe.setAmtSugar("1");
            recipe.setPrice("65");
        
            assertEquals(true,coffeeMaker.addRecipe(recipe));
            assertEquals(coffeeMakerMain.getMode(),Mode.WAITING);
            System.out.println("Recipe is added");
}
 

Я пытаюсь понять, смогу ли я заставить свой код принимать регулярное выражение в качестве объекта класса (Рецепт), но я получаю эту ошибку:

 cucumber.runtime.CucumberException: Don't know how to convert "Recipe4" into edu.ncsu.csc326.coffeemaker.Recipe.
 

Может кто-нибудь, пожалуйста, сказать мне, что я делаю не так?

Ответ №1:

Вот как я преобразую строку в pojo

 When I add  user by passing <userInfo> to pojo class from scenario outline

Examples:
|userInfo|
        |TestFirstName,TestLastName|
 

Конвертер это

 @ParameterType(".*?")
          public addUserPojo defineStringToPojo(String adduser) {
            List<String> usr = Arrays.asList(adduser.split(","));
           return  new addUserPojo(usr.get(0),usr.get(1));
          }
 

определение шага таково

 @When("I add  user by passing {defineStringToPojo} to pojo class from scenario outline")
        public void AddUserWithPOJOScOut( addUserPojo adduser) throws MalformedURLException, InterruptedException {
           
             
           System.out.println("firstname..." adduser.getFirstName());
           System.out.println("LastName..." adduser.getLastName());

}
 

пожо это

 public class addUserPojo {
    
    private String FirstName;
  private  String LastName;

  
    public addUserPojo(String fname, String lname){
        this.FirstName = fname;
         this.LastName=lname;
                 
    }
    public String getFirstName() {
        return FirstName;
    }
    public String getLastName() {
         return LastName;
    }

}
 

Поскольку вы не используете схему сценария , вам не нужно этого делать split , просто используйте строку, и она должна работать