FakerJsを使ったモックデータ生成

FakerJsとは?
FakerJsはEメールアドレス、電話番号、住所、パスワード、画像といった、多種多様なランダムデータを生成するJavaScriptライブラリーです。
デモ: https://rawgit.com/Marak/faker.js/master/examples/browser/index.html
何時に使われるか
- APIからのデータの返却が未実装の場合にフロントエンド側でデータ処理を実装する必要がある時
- データベース、サービス、ホスト等の接続先に問題があった場合に、APIから返却されるダミーデータを生成する時
- APIの検証のためjson形式のサンプルデータを生成する時
NodeJsでのFakerJs使い方
まずnpmで以下のコマンドでインストールします。
npm i faker
つぎ、以下のようにインポートします。
TypeScriptプロジェクトの場合:
import faker = require("faker")
JavaScriptプロジェクトの場合:
var faker = require("faker");
例えば、FakerJsを使って3オブジェクトのEmployeeを作成します。
const generateEmployee = () => {
return {
id: faker.random.uuid(),
first_name: faker.name.firstName(),
last_name: faker.name.lastName(),
email: faker.internet.email(),
};
};
//Return 3 object users
=>> Array.from({ length: 3 }, generateEmployee)
結果:
[
{
"id": "653551ca-29dc-458d-90dd-1c7a04004350",
"first_name": "Yadira",
"last_name": "Zieme",
"email": "Russel_Will88@yahoo.com"
},
{
"id": "14243402-a6f9-4005-bc61-bb1d25f23183",
"first_name": "Nyah",
"last_name": "Hermiston",
"email": "Sigrid77@gmail.com"
},
{
"id": "60dbec10-2898-4571-8187-31072f849ed9",
"first_name": "Reed",
"last_name": "Towne",
"email": "Alejandrin.Simonis@hotmail.com"
}
]
現在FakerJsは多言語をサポートしてくれます。
例えば、employeeオブジェクトを作成する前にロケールを予め指定しておきます。
faker.locale = 'ja';
結果:
[
{
"id": "c0a9b596-ade2-4d9e-bddc-3a6e6ed43fcb",
"first_name": "結菜",
"last_name": "加藤",
"email": "海翔_井上@gmail.com"
},
{
"id": "12381746-bb9e-479c-adf0-ba7887392a06",
"first_name": "杏",
"last_name": "渡辺",
"email": "結菜_清水11@gmail.com"
},
{
"id": "264a8702-3318-43d1-9518-748046ff6ac5",
"first_name": "心愛",
"last_name": "清水",
"email": "結衣_山田57@gmail.com"
}
]
FakerJsのサポートしてくれるデータ種類と言語についてhttp://marak.github.io/faker.js/を参照してください。
FakerJsにおけるSeed
FakerJsではランダムデータを生成できますが、異なる処理にて同じデータを生成する必要がある場合があります。その対応策としては、以下のようなSeedを利用できます。
faker.seed(1); var number1st = faker.random.number(); // name1st = 123 // Setting the seed again resets the sequence. faker.seed(1); var number2nd = faker.random.number(); // number2nd = 123 // => number1st === number2nd
FakerJsの他のサービス
FakerJs API
APIからはリクエストパラメーターにより、単一のデータ項目を返却します。
http://faker.hook.io/?property=internet.email&locale=en
結果:
"Ted37@hotmail.com"
Faker Cloud
単一または複数のダミーデータを素早く作成でるので、API検証のため大量データ生成に役立ちます。データのDBへの一括登録コマンドの他に、CSV形式やJson形式、MySQLやMSSQLをもサポートしてくれます。
まとめ
Faker Jsはバックエンド・フロントエンド両方に適用できる、便利かつ簡潔なライブラリーです。特にFakerCloudはテスターにふさわしいです。Faker Jsでは時間にかなりかかりそうなDBへのデータ一括登録やAPIへ送信するJsonリスト作成を簡単化することができ、多言語等をもサポートしてくれます。
参考元:
Vietnamese
English