Est-il possible de charger les données dans la mémoire au lieu d'utiliser des fichiers.csv pour effectuer des tests unitaires?


Question

Est-il possible de charger les données dans la mémoire au lieu d'utiliser des fichiers.csv pour effectuer des tests unitaires?

Scénario: je veux charger les données dans la mémoire pour utiliser le framework Effort qui crée le faux dbcontext et effectue l'opération. Au lieu d'utiliser des fichiers Dataloader et .csv, je dois charger les données par programme.

Exemple de code qui fonctionne bien avec les fichiers .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);

Je cherche simplement un remplacement pour charger les données au lieu de les charger avec des fichiers .csv

Réponse populaire

Vous pouvez créer une DbConnection transitoire / persistante DbConnection sans DataLoader, l'utiliser dans votre DbContext , puis DbContext programme les données générées dans le contexte.

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





Sous licence: CC-BY-SA
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi