1

无论如何我可以将数据加载到内存中,而不是使用 .csv 文件进行单元测试吗?

场景:我想将数据加载到内存中,以使用 Effort 框架创建假的 dbcontext 并执行操作。我需要以编程方式加载数据,而不是使用 Dataloader 和 .csv 文件。

适用于 .csv 文件的示例代码:

        IDataLoader loader = new Effort.DataLoaders.CsvDataLoader("D:\\csv");
        var dataLoader = new CachingDataLoader(loader, false);
        DbConnection connection = Effort.DbConnectionFactory.CreateTransient(dataLoader);
        DbContext mockedDbContext = new NopObjectContext(connection);
        EfRepository<Shelf> _shelEfRepository = new EfRepository<Shelf>(mockedDbContext);
        EfRepository<ProductVariant> _productVariantEfRepository = new EfRepository<ProductVariant>(mockedDbContext);
        EfRepository<Product> _productEfRepository = new EfRepository<Product>(mockedDbContext);
        _shelfService = new ShelfService(_shelEfRepository, _productVariantEfRepository, _productEfRepository);

我只是在寻找替代品来加载数据,而不是使用 .csv 文件加载数据

4

1 回答 1

2

DbConnection 您可以在没有DataLoader 的情况下创建 Transient/Persistent ,在您的 中使用它DbContext,然后以编程方式将生成的数据推送到上下文中。

见:https ://tflamichblog.wordpress.com/2012/11/04/factory-methods-in-effort-createtransient-vs-createpersistent

于 2015-12-01T03:41:17.077 回答