使用虚拟数据填充对象

4
有没有一种方法可以使用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();

上面的代码创建了一个对象,但是没有伪造数据。

NBuilder,赢了。 - code4life
NBuilder是一个很棒、很出色的选择,但它不支持.Net Core。我正在寻找一款与NBuilder完全相同的工具,但是适用于.Net Core。 - lucas
在GitHub上,将NBuilder移植到.NET Core存在问题,请参见此处 - Marian Dolinský
看起来NBuilder现在也支持.NET Core:@MarianDolinský提到的问题似乎已经得到解决。 - Manfred
1个回答

3

经过一番搜索,我找到了一个很好的库,它与 .Net Core 兼容,并且可以非常高效地生成随机逼真的测试数据,无需显式指定类属性规则。如果有人正在寻找 NBuilder 库的替代品,而该库在标准 .Net 中表现优秀,GenFu 库可能是你在进行 .Net Core 单元/集成测试时的答案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接