【发布时间】:2017-12-09 16:59:28
【问题描述】:
有没有一种方法可以在不明确指定属性规则的情况下使用 Faker 用假数据预先填充对象。我发现为每个属性指定规则以使用随机数据填充对象需要花费太多时间。根据属性数据类型自动为我执行此操作的方法怎么样。使用 NBuilder 很容易实现这一点,遗憾的是不支持 .Net Core。
这是我用来填充 CategoryViewModel 的代码:
var category = PopulateCategoryViewModelFaker().Generate();
private Faker<CategoryViewModel> PopulateCategoryViewModelFaker()
{
var faker = new Faker<CategoryViewModel>();
//faker.StrictMode(true);
faker.RuleFor(x => x.DateCreated, f => DateTime.Now);
faker.RuleFor(x => x.Description, f => f.Lorem.Sentence(2));
faker.RuleFor(x => x.ParentCategory, f => null);
faker.RuleFor(x => x.Status, f => null);
faker.RuleFor(x => x.Title, f => f.Lorem.Sentence(2));
faker.RuleFor(x => x.CategoryId, f => Guid.NewGuid());
faker.RuleFor(x => x.CreatedByUser, f => null);
faker.RuleFor(x => x.CrumbPath, f => null);
faker.RuleFor(x => x.StatusId, _ctx.CategoryStatuses.First().StatusId);
faker.RuleFor(x => x.CreatedByUserId, x => Guid.NewGuid());
return faker;
}
我会看起来像:
var cat = new CategoryViewModel();
cat = new Faker<CategoryViewModel>().Generate();
上面创建了一个对象,但是没有假数据。
【问题讨论】:
标签: c# unit-testing .net-core faker