适用于.NET的Faker-cs包:用法示例?

时间:2013-07-08 02:32:36

标签: c# .net mocking

我在项目中安装了 Faker端口C#https://github.com/oriches/faker-cs),但项目网站没有提供使用示例。

有人可以发布一些基本模拟数据生成的例子吗?

2 个答案:

答案 0 :(得分:3)

在这个例子中,我使用的是一个使用MVC4,EF Code First和Automatic Migrations的项目。因此,如果您使用相同的文件,则Migrations\Configuration.cs文件应如下所示:

internal sealed class Configuration : DbMigrationsConfiguration<MyProject.Models.MyProjectContext>
{
    public Configuration()
    {
        AutomaticMigrationsEnabled = true;
    }

...

对于单个元素,这个例子很简单:

protected override void Seed(MyProject.Models.MyProjectContext context)
    {
        context.Customers.AddOrUpdate(
            c => c.Name,
            new Customer { Name = Faker.Name.FullName() }
        );

        context.SaveChanges();

        ...

对于定义数量的元素,我喜欢使用lambda表达式的想法,比如Factory Girl(对于Ruby on Rails)。在我提出的另一个问题(DbMigrations in .NET w/ Code First: How to Repeat Instructions with Expressions)中,答案使用Enumberable.Range()来指定元素数量:

protected override void Seed(MyProject.Models.MyProjectContext context)
{
    context.Companies.AddOrUpdate(
            p => p.Name,
            Enumerable.Range(1, 10).
            Select( x => new Company { Name = Faker.Company.Name() }).ToArray()
    );

    context.SaveChanges();
}

...

答案 1 :(得分:1)

资源稀缺,但this article似乎是人们所期望的。

还尝试使用程序集/对象浏览器查看可用资源(例如,库中包含ClassesMethods等等。此外,该库包含NUnit个测试,因此look at the tests'代码也可能有用。

由于Faker.NET是名为ffaker的Ruby库的一个端口,人们也可能暗示代码的意图相似,因此也可以使用ffaker的单元测试作为小参考。