如何在Java中通过使用伪造函数使用不同的数据?

时间:2018-09-20 15:05:05

标签: java arrays faker

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

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 方法/函数中生成具有不同计数和组合的名字,姓氏,但是由于仅调用一次伪造者,并将其作为参数传递,因此会获得相同的数据集。

我不想在 generateata 方法中调用 generateNames 的内容,因为如果我想添加更多组合,则必须复制每种开关情况下的所有内容增加了更多案例。任何帮助表示赞赏。谢谢。

0 个答案:

没有答案