gpt4 book ai didi

c# - 模拟 NHibernate 和 Linq

转载 作者:太空狗 更新时间:2023-10-29 20:21:27 24 4
gpt4 key购买 nike

我正在使用 NHibernate 并在我的前端公开 session 。我有一个 Controller 操作,它按如下方式检索任务:

public ActionResult Overview(DateTime date)
{
var allTasks = GetTasksUpUntilDate(date);
return PartialView("Tasks/Overview", allTasks);
}

private List<TaskOverviewModel> GetTasksUpUntilDate(DateTime date)
{
var allTasks = _session.Query<Task>().Where(t.BookedBy.UserName.Equals(CurrentUser.Name,
StringComparison.CurrentCultureIgnoreCase));
var tasks = allTasks.Where(t => t.DueDate <= date);

var taskVMs = new List<TaskOverviewModel>();
tasks.ForEach(t => taskVMs.Add(MapEntityToViewModel(t)));

return taskVMs;
}

现在我不想仅为我的 View 创建一个 IRepository,因为 ISession 实际上已经是一个存储库。然而,模拟/ stub 证明是相当困难的。那么谁能帮助我让 _session.Query 返回我在测试时提供的对象列表?

我还想避免设置内存数据库,并使用 RhinoMocks 进行测试。

最佳答案

不要伪造 Nh/linq。而是设置一个内存中的 sqlite 数据库来查询。它们速度极快且易于使用。

关于c# - 模拟 NHibernate 和 Linq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9583334/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com