我今天已经做了一些研究,但是我没有找到合适的答案。 我继承了一个没有单元测试迹象的ASP.NET MVC项目。我已经使用DI创建了所有存储库,并且将逻辑业务与数据访问(几乎到处都是)分开了
现在我正在编写应该与数据库操作相关的单元测试(在拒绝投票之前,我不想对LINQ to Object进行测试,因为从Linq到SQL的行为可能不同,您使用哪种方法?在我必须进行测试时还是从某些测试环境中复制的数据库,或者您是否使用内存中的数据库?(例如SQL Express?)
考虑到我必须在名称受约束的表中测试插入的情况,在SQL to Object中进行测试不会失败。我正在评估是否有一个SqlServer Express填充有执行测试所需的数据,例如,如果我需要填充这2列来测试Customer和Orders,但这意味着我将不得不创建很多SQL Server实例可以处理我所有的测试。
什么是最好的方法? 谢谢
我使用的插入方法示例
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;
}
我应该如何测试?