Kann ich die Daten trotzdem in den In-Memory laden, anstatt CSV-Dateien zu verwenden, um Unit-Tests durchzuführen?


Frage

Kann ich die Daten trotzdem in den In-Memory laden, anstatt CSV-Dateien zu verwenden, um Unit-Tests durchzuführen?

Szenario: Ich möchte die Daten in den Arbeitsspeicher laden, um das Effort-Framework zu verwenden, das den falschen dbcontext erstellt und die Operation ausführt. Anstatt Dataloader- und CSV-Dateien zu verwenden, muss ich die Daten programmatisch laden.

Beispielcode, der mit CSV-Dateien funktioniert:

        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);

Ich suche nur nach etwas Ersatz, um die Daten zu laden, anstatt die Daten mit .csv-Dateien zu laden

Beliebte Antwort

Sie könnten eine transiente / persistente DbConnection ohne DataLoader erstellen, sie in Ihrem DbContext und dann programmgesteuert die generierten Daten in den Kontext übertragen.

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





Lizenziert unter: CC-BY-SA
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum