برای نصب کتابخانه GenFu از دستور زیر در Package Manager Console استفاده میکنیم :
1. ایجاد یک شخص
برای ایجاد شخصی جدید همراه با اطلاعاتی تصادفی به شکل زیر عمل خواهیم کرد :
var person = A.New<Person>();
Console.WriteLine(person);
نتیجه کد فوق به این صورت خواهد بود :
18: Diedra Morgan - Zachary.Garcia@telus.net - (531) 273-9001
اگر دقت کنید متوجه میشوید که GenFu بصورت خودکار دادههایی مرتبط با Property هایی که نام گذاری کردید، ایجاد کردهاست.
برای Email، دادهای با فرمت صحیح ایمیل و برای PhoneNumber هم شماره تلفنی با فرمت صحیح تولید شده است.
2. ایجاد چند شخص
برای ایجاد لیستی از اشخاص نیز میتوانید از متد ListOf استفاده کرده و تعداد اشخاص مورد نیازتان را به آن ارسال کنید ( پیشفرض 25 ) :
var people = A.ListOf<Person>(5);
people.ForEach(Console.WriteLine);
کد فوق باعث ایجاد 5 شخص با اطلاعات تصادفی متفاوتی خواهد شد:
97: Maria MacKenzie - Alexandra.Johnson@rogers.ca - (670) 787-3053
34: Alexander Scott - Isaiah.Price@gmail.com - (730) 645-4946
66: Kevin Perez - Gabrielle.Alexander@hotmail.com - (230) 758-8233
81: Maria Evans - Vanessa.Bell@rogers.ca - (508) 572-4343
79: Tyler Parker - Alyssa.Taylor@telus.net - (297) 357-7617
تا به اینجای کار GenFu بخوبی جوابگوی نیازهایمان بودهاست. اما اگر پیشفرضها جوابگو نبود و بخواهیم فرمت دادههای تولید شده را تغییر دهیم چطور ؟
برای اینکار میتوانیم از متد Configure استفاده کرده و نحوه ایجاد داده را برای Property هایی که مشخص میکنیم، تغییر دهیم.
3. ایجاد چند شخص و مقدارهی یک property با مقدار ثابت
اگر بخواهیم دادههای ایجاد شده را داخل دیتابیس لحاظ کنیم، نیاز داریم تا ID آنها را برابر 0 قرار دهیم تا دیتابیس مشکلی برای ثبتشان نداشته باشد. برای ایجاد لیستی از اشخاص که ID آنها برابر 0 باشد :
A.Configure<Person>().Fill(x => x.ID, 0);
var people = A.ListOf<Person>(5);
people.ForEach(Console.WriteLine);
نتیجه :
0: Darron Gonzalez - Benjamin.Daeninck@hotmail.com - (405) 418-7783
0: Melanie Garcia - Jennifer.Griffin@microsoft.com - (711) 277-8826
0: James Hughes - Tristan.Ward@live.com - (734) 400-8322
0: Miranda Torres - Ross.Davis@rogers.ca - (495) 479-8147
0: David Hughes - Jillian.Alexander@live.com - (361) 617-6642
در این حالت بدون هیچگونه مشکلی میتوانید دادههای ایجاد شده را داخل دیتابیس ذخیره نمایید.
4. ایجاد چند شخص و مقداردهی یک property با متد
حالت دیگری که میتوانید نحوه مقداردهی یک Property را تنظیم کنید، استفاده از متد یا delegate است:
var i = 1;
A.Configure<Person>()
.Fill(c => c.ID, () => i++);
var people = A.ListOf<Person>(5);
people.ForEach(Console.WriteLine);
نتیجه :
1: Paul Long - Carlos.Kelly@telus.net - (202) 573-6278
2: Jesse Iginla - Liberty.Moore@gmail.com - (589) 791-3606
3: Raymundo Price - Ang.Taylor@live.com - (336) 400-1601
4: Elizabeth Getzlaff - Leslie.Campbell@att.com - (662) 582-9010
5: Abigail Bailey - Tristan.Ross@live.com - (225) 661-7023
همانطور که میبینید، ID اشخاص بصورت تصاعدی مقداردهی شده است.
5. ایجاد چند شخص و مقداردهی یک property با مقادیر propertyهای دیگر
همچنین میتوانید از مقادیر Propertyهای دیگر برای مقداردهی یک Property استفاده کنید :
A.Configure<Person>()
.Fill(c => c.ID, 0)
.Fill(c => c.Email,
c => $"{c.Firstname}.{c.Lastname}@gmail.com");
var people = A.ListOf<Person>(5);
people.ForEach(Console.WriteLine);
کد فوق باعث تولید اشخاصی میشود که ایمیل آنها برابر (Firstname).(Lastname) خواهد بود :
0: Patrick Perry - Patrick.Perry@gmail.com - (796) 460-6576
0: Rebecca Main - Rebecca.Main@gmail.com - (757) 472-3332
0: Kimberly Carter - Kimberly.Carter@gmail.com - (436) 484-8273
0: Sara Lewis - Sara.Lewis@gmail.com - (424) 717-7682
0: Lauren Ross - Lauren.Ross@gmail.com - (277) 294-5776
6. استفاده از Extensionهای درون ساخت GenFu برای مقداردهی
GenFu دارای Extension هایی بوده که باعث میشوند اطلاعات یک Property با مقادیر قابل درک و مشخصی پر شوند.
مثال :
A.Configure<Person>()
.Fill(x => x.Firstname).AsPersonTitle();
var people = A.ListOf<Person>(5);
people.ForEach(Console.WriteLine);
نتیجه :
64: Miss. Ratzlaff - Bryce.Simmons@att.com - (386) 309-2414
7: Air Marshall Yarobi - Ariana.Russell@att.com - (459) 238-0717
96: Air Marshall Taylor - Luke.Olsen@gmail.com - (775) 401-5281
28: Doctor Cox - Leah.Diaz@att.com - (569) 464-7961
99: Master Phillips - Chloe.Scott@hotmail.com - (578) 221-9021
7. GenFu WireFrame
در نهایت GenFu دارای پکیج جانبی به اسم Wireframes است که شامل HTML Helper هایی است که با استفاده از آنها میتوانید المانهای HTML مانند P, Image, Table و ... را با مقادیری برای تست بعنوان Placeholder ایجاد کنید.
برای نصب و مطالعه بیشتر درباره GenFu WireFrames این
لینک را ببینید.