【发布时间】:2021-11-29 02:32:33
【问题描述】:
我有一个方法,我必须为其编写单元测试。此方法使用数据库上下文从数据库中检索详细信息。
现在我正在考虑如何模拟这个数据库上下文并测试剩余的 LINQ 代码。
同样,我还有其他方法,它们有一些逻辑和一些 LINQ 查询,我也想对它们进行单元测试。
public class OrderService
{
private DataContext _context;
public OrderService(DataContext context)
{
_context = context;
}
public int OrderCount(int orderId)
{
var count = _context.Orders.Where(x=>x.orderId==orderId).ToList().Count;
}
}
我应该如何处理这种情况?
这是开发人员面临的常见情况,但关于此的可用信息不多。任何建议将不胜感激。
【问题讨论】:
-
您应该模拟代码以从数据库中检索数据。单元测试在真实数据库中不起作用
-
如果该代码具有许多业务逻辑以及从数据库中检索数据怎么办?
-
你可以使用内存数据库
-
另一种方法是在 dbcontext 上创建包装器。无论如何我都会使用内存数据库
-
似乎是一个有趣的想法,你有任何参考或链接。
标签: c# linq unit-testing nunit moq