版本基于Faker1.0.2
Faker 是一个在 Java 中用于生成测试数据的库,它可以帮助开发人员快速创建各种类型的随机数据,如姓名、地址、电子邮件、电话号码、日期等。使用 Faker 可以简化测试数据的生成过程,并提高开发和测试的效率。
在 Maven 项目中,可以在 pom.xml 文件中添加以下依赖:
<dependency> <groupId>com.github.javafaker</groupId> <artifactId>javafaker</artifactId> <version>1.0.2</version> </dependency>
import com.github.javafaker.Faker; public class TestDataGenerator { public static void main(String[] args) { Faker faker = new Faker(); // 生成姓名 String name = faker.name().fullName(); System.out.println("姓名:" + name); // 生成地址 String address = faker.address().fullAddress(); System.out.println("地址:" + address); // 生成电子邮件 String email = faker.internet().emailAddress(); System.out.println("电子邮件:" + email); // 生成电话号码 String phoneNumber = faker.phoneNumber().phoneNumber(); System.out.println("电话号码:" + phoneNumber); // 生成日期 String date = faker.date().birthday().toString(); System.out.println("日期:" + date); } }
package com.lya.ttx; import com.github.javafaker.Faker; import com.lya.ttx.mapper.ProductsMapper; import com.lya.ttx.pojo.Products; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.context.annotation.Profile; import java.util.Locale; @SpringBootTest class TtxApplicationTests { @Autowired private ProductsMapper productsMapper; @Test void contextLoads() { for (int i = 123; i < 100000; i++) { Products products = new Products(); Faker faker = new Faker(Locale.CHINA); products.setProductId(i); // products.setName(faker.name().username()); products.setName(faker.name().lastName()+faker.name().firstName()); products.setImage("../static/images/slide.jpg"); products.setCategoryId(5); products.setPrice(faker.number().numberBetween(10, 60)); productsMapper.insert(products); } } }
以上代码演示了如何使用 Faker 生成随机的姓名、地址、电子邮件、电话号码和日期。你可以根据需要使用 Faker 来生成其他类型的测试数据。
- 创建 faker 对象
- 通过 faker 对象获得要生成的实体对象
- 调用实体对象获得对于生成的部分
而且 java-faker 支持的实体对象特别的多,如下:
Address
Ancient
Animal
App
Aqua Teen Hunger Force
Artist
Avatar
Back To The Future
Aviation
Basketball
Beer
Bojack Horseman
Book
Bool
Business
ChuckNorris
Cat
Code
Coin
Color
Commerce
Company
Crypto
DateAndTime
Demographic
Disease
Dog
DragonBall
Dune
Educator
Esports
File
Finance
Food
Friends
FunnyName
GameOfThrones
Gender
Hacker
HarryPotter
Hipster
HitchhikersGuideToTheGalaxy
Hobbit
HowIMetYourMother
IdNumber
Internet
Job
Kaamelott
LeagueOfLegends
Lebowski
LordOfTheRings
Lorem
Matz
Music
Name
Nation
Number
Options
Overwatch
PhoneNumber
Pokemon
Princess Bride
Relationship Terms
RickAndMorty
Robin
RockBand
Shakespeare
SlackEmoji
Space
StarTrek
Stock
Superhero
Team
TwinPeaks
University
Weather
Witcher
Yoda
Zelda
从身份证到姓名再到地址、动物、书籍、头像、职位等等,基本上覆盖了我们生活中的方方页面。
另外,java-faker 更贴心的是帮我们实现了国际化,可能刚才看了姓名的例子,有些朋友觉得这个框架好看但不好用,就拿生成姓名来说,生成都是 Johnston、Tom、Kiwi 之类英文名,在国内很少用到这些数据。其实java-faker 已经考虑到这个问题。而且只要改一行代码就可以了。
四、不同国家语言支持
如使用中文 将Faker faker = new Faker(); 改成 Faker faker = new Faker(Locale.CHINA);?
如果你想生成其它国家的内容也是可以的,java-faker 支持的国家如下:
bg
ca
ca-CAT
da-DK
de
de-AT
de-CH
en
en-AU
en-au-ocker
en-BORK
en-CA
en-GB
en-IND
en-MS
en-NEP
en-NG
en-NZ
en-PAK
en-SG
en-UG
en-US
en-ZA
es
es-MX
fa
fi-FI
fr
he
hu
in-ID
it
ja
ko
nb-NO
nl
pl
pt
pt-BR
ru
sk
sv
sv-SE
tr
uk
vi
zh-CN
zh-TW
总结:
使用 Faker 可以简化测试数据的生成过程,并提高开发和测试的效率。
- 创建 faker 对象
- 通过 faker 对象获得要生成的实体对象
- 调用实体对象获得对于生成的部分