【问题标题】:Does a fake data generator exists in Java? [closed]Java 中是否存在假数据生成器? [关闭]
【发布时间】:2011-06-15 18:43:58
【问题描述】:

我想知道是否存在用于 Java 的假数据生成器。在 Perl 中存在 Data::Faker,并且有一个用于 Ruby 的端口 faker,用于 JavaScript faker.js。有人知道用于 Java 的 假数据生成器,它可以提供随机姓名、电话号码、邮政信箱。箱号等...

【问题讨论】:

  • 我从未见过这样的事情(在 java 附带的库中)。也许有一个 3rd 方库可以在 Java 中为您做到这一点。在这种情况下,您应该使用搜索引擎来查找:)
  • 结帐ThinkUI
  • 我最近编写了一个可以像 faker 一样传递的库:github.com/nomemory/mockneat
  • 您可以尝试Datafaker,这是一个用于生成假数据的 JVM 库。这是一个最新版本(免责声明:由我维护)。

标签: java data-generation


【解决方案1】:

试试jFairy。这是早期的新项目。

Fairy fairy = Fairy.create();
Person person = fairy.person();

System.out.println(person.fullName());            // Chloe Barker
System.out.println(person.email());               // barker@yahoo.com
System.out.println(person.telephoneNumber());     // 690-950-802

Company company = fairy.company();
System.out.println(company.name());          // Robuten Associates
System.out.println(company.url());           // http://www.robuteniaassociates.com

Person salesman = fairy.person(withCompany(company));
System.out.println(salesman.fullName());     // Juan Camacho
System.out.println(salesman.companyEmail()); // juan.camacho@robuteniaassociates.com

PS。我是贡献者。

【讨论】:

  • 我们正在努力添加更多功能,新版本即将发布。
  • 我怎样才能成为贡献者?我正在使用它,但它不适合我的现实生活项目。需要明确的是,它是基于语言的,而不是基于语言环境的(比如说 Kanada 和法语),或者任何你想要的。基于语言的项目不适合现实生活中的项目。电话号码不是基于语言,而是基于区域设置。我喜欢基本概念,并认为它是目前最好的开放事物,但它不符合大型项目的现实。现在我只是修改每个反射的对象以适应,但我认为我可以提供更有用的东西。在 githu 上,我看不到我如何做出贡献。
  • 欢迎任何帮助。贡献使用拉请求,更多阅读:guides.github.com/activities/contributing-to-open-source
  • 如何创建可以以我选择的单词开头的测试数据,例如“Test Chloe Barker”
【解决方案2】:

http://www.andygibson.net/blog/article/generate-test-data-with-datafactory/ 使用方法:

  1. 将其添加到您的pom.xml

    <dependency>
        <groupId>org.fluttercode.datafactory</groupId>
        <artifactId>datafactory</artifactId>
        <version>0.8</version>
        <type>jar</type>
    </dependency>
    
  2. 测试一下...

    public class Main {
    
    public static void main(String[] args) {
        DataFactory df = new DataFactory();
        for (int i = 0; i < 100; i++) {          
            String name = df.getFirstName() + " "+ df.getLastName();
            System.out.println(name);
        }
      }
     }
    

输出:

Lindsey Craft
Erica Larsen
Ryan Levine
Erika Smith
Brooklyn Sloan
Karen Mayer
Eddie O'neill
Nancy Stevens

【讨论】:

【解决方案3】:

有一个 Perl Data::Faker 的 Java 端口 - java-faker

【讨论】:

  • 确实值得使用。在我看来,它得到了很好的 l10n 支持。
  • 我最近使用了java-faker,并创建了Faker 的实例抛出了一个NPE。我继续报告这个问题:github.com/DiUS/java-faker/issues/6
  • 大部分内置的 faker-s 都是无用的。因为它们很多(口袋妖怪、星际迷航等),所以很难找到有用的。
【解决方案4】:

如果您使用的是 Hibernate,请尝试 HibernateMock

还有:

【讨论】:

  • HibernateMock 已不复存在:-( 但已重生为code.google.com/p/jpamock
  • 我试过 Benerator.. 这似乎是一个很好的项目......但是很少或没有免费支持.. 这个项目的活动非常低
猜你喜欢
  • 2010-09-21
  • 2019-12-19
  • 2022-01-10
  • 2011-08-27
  • 2018-12-30
  • 1970-01-01
  • 1970-01-01
  • 2012-01-28
  • 1970-01-01
相关资源
最近更新 更多