首页 > 解决方案 > java - 如何通过使用函数在Java中使用faker来使用不同的数据?

问题描述

我在 Java 中使用 faker ( https://mvnrepository.com/artifact/com.github.javafaker/javafaker/0.2 ) 并且在使用函数循环生成不同数据时遇到问题。这是我的代码:

import com.github.javafaker.Faker;
import java.util.ArrayList;
import java.util.LinkedHashMap;

public class DataGenerator{
 Faker faker = new Faker();
 LinkedHashMap<String,ArrayList<String>> result = new LinkedHashMap<>();
 public static void main(String[] args) throws Exception {
   generatedata("firstname");
   //generatedata("lastname");
   for(String key : this.result.keySet())
    {
        System.out.println(key);
        ArrayList<String> al = this.result.get(key);
        for(String s : al)
            System.out.println(s);
    }
 }

 public void generatedata(String fieldType) throws Exception{
   switch (fieldType.toLowerCase()){
    case "firstname":
      resultdata = generateInvalidData(faker.name().firstName());
      break;
    case "lastname":
      resultdata = generateInvalidData(faker.name().lastName());
      break;
   }
   result.put(fieldType.toLowerCase(), resultdata);
 }

 public ArrayList<String> generateNames(String fieldType) throws Exception{
  ArrayList<String> resultdata = new ArrayList<>();
  for (int j = 0; j < 5; j++) {
        //valid data
        resultdata.add(testData);

        //UPPERCASE
        resultdata.add(testData.toUpperCase());
    }
     return resultdata;
 }

这里我试图在generateNames方法/函数中生成具有不同计数和组合的名字、姓氏,但由于伪造者只被调用一次,它作为参数传递,我得到了相同的数据集。

我不想在generateData方法中调用generateNames的内容,因为如果我想添加更多组合,那么如果添加了更多案例,我必须复制粘贴每个开关案例中的所有内容。任何帮助表示赞赏。谢谢。

标签: javaarraysfaker

解决方案


推荐阅读