使用测试数据库数据访问来测试EF数据访问

时间:2018-10-05 15:20:15

标签: entity-framework unit-testing

我今天已经做了一些研究,但是我没有找到合适的答案。 我继承了一个没有单元测试迹象的ASP.NET MVC项目。我已经使用DI创建了所有存储库,并且将逻辑业务与数据访问(几乎到处都是)分开了

现在我正在编写应该与数据库操作相关的单元测试(在拒绝投票之前,我不想对LINQ to Object进行测试,因为从Linq到SQL的行为可能不同,您使用哪种方法?在我必须进行测试时还是从某些测试环境中复制的数据库,或者您是否使用内存中的数据库?(例如SQL Express?)

考虑到我必须在名称受约束的表中测试插入的情况,在SQL to Object中进行测试不会失败。我正在评估是否有一个SqlServer Express填充有执行测试所需的数据,例如,如果我需要填充这2列来测试Customer和Orders,但这意味着我将不得不创建很多SQL Server实例可以处理我所有的测试。

什么是最好的方法? 谢谢

更新1

我使用的插入方法示例

 public bool InsertUteCliente(UteCliente uteCli)
    {

        UPC upc = new UPC();
        upc.IdUtente = uteCli.idUte;
        upc.CodiceCliente = GetCodCliente(uteCli.id);
        upc.AnagraficaVitaEnable = uteCli.AnagVita;
        upc.AnagraficaRSMEnable = uteCli.AnagRSM;
        upc.AnagraficaInfortuniEnable = uteCli.AnagInfo;
        upc.AnagraficaIPMEnable = uteCli.AnagIPM;
        upc.PolizzaVitaEnable = uteCli.PolVita;
        upc.PolizzaRSMEnable = uteCli.PolRSM;
        upc.PolizzaInfortuniEnable = uteCli.PolInfo;
        upc.PolizzaIPMEnable = uteCli.PolIPM;
        upc.ConsuntiviEnable = uteCli.IfConsuntivi;
        upc.RinnoviEnable = uteCli.IfRinnovi;
        upc.IncEscEnable = uteCli.IfIncEsc;
        upc.PremiVisible = false;
        upc.EstrazionePremiVisibile = uteCli.IfEstrazionePremi;

        dbContext.UPC.Add(upc);

        dbContext.SaveChanges();


        return true;
    }

我应该如何测试?

0 个答案:

没有答案