gpt4 book ai didi

c# - NHibernate 可查询单元测试

转载 作者:太空宇宙 更新时间:2023-11-03 14:06:48 25 4
gpt4 key购买 nike

尝试对 NHibernate 和工作单元模式进行单元测试时,在尝试模拟返回 IQueryable 的数据访问方法时遇到了障碍?

这个有效:

var employee = Helper.GetEmployee();
Repository.Stub(x => x.FindById<Employee>(employee.Id)).Return(employee);

这行不通:

var employee = Helper.GetEmployee();
var employeeList = new List<Employee> { employee };
Repository.Stub(x => x.All<Employee>().ToList()).Return(employeeList);

基本上,任何返回 > 1 名员工的东西我都无法模仿。

存储库 FindById 方法返回:

Session.Get<TEntity>(id);

Repository All 方法返回:

Session.Query<TEntity>();

当单元测试运行模拟存储库 All 方法时,返回异常说源不能为空?

我被卡住了,有什么想法吗?

谢谢!蒂姆

最佳答案

您是否尝试过以下方法。您的数据访问方法正在返回 IQueryable,但您试图模拟在对结果调用 ToList() 时返回的内容?你应该只是 mock 结果。

Repository.Stub(x => x.All<Employee>()).Return(employeeList.AsQueryable<Employee>);

关于c# - NHibernate 可查询单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9121030/

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