加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用Moq模拟OData客户端容器

发布时间:2020-12-15 06:27:56 所属栏目:百科 来源:网络整理
导读:我正在使用OData V4客户端在我的asp.net mvc 5中创建代理.我想使用Moq对控制器进行单元测试.有什么办法可以通过容器来模拟OData服务响应.以下是OData容器实例化器: public static class ControlEntityContextHelper { /// summary /// Returns OData servic
我正在使用OData V4客户端在我的asp.net mvc 5中创建代理.我想使用Moq对控制器进行单元测试.有什么办法可以通过容器来模拟OData服务响应.以下是OData容器实例化器:
public static class ControlEntityContextHelper
    {
         /// <summary>
         /// Returns OData service context
         /// </summary>
         /// <returns></returns>
         public static Container GetEntityContext()
         {
             // create the container
             var container = new Container(new Uri("http://localhost/services/odata/"));
             container.Timeout = 1800;
             return container;
          }
     }

下面是MVC控制器:

public JsonResult GetEmployees(string employeeId)
    {
        var odataContext = ControlEntityContextHelper.GetEntityContext();
        var employee = odataContext.Employees.Where(emp => emp.EmployeeId == employeeId);
        return Json(employee,JsonRequestBehavior.AllowGet);
    }

任何帮助将不胜感激.

解决方法

尝试添加:
public interface IEmployeeRepository
{
    Employee GetById(string id);
}

public class EmployeeRepository: IEmployeeRepository
{
    public Employee GetById() {//access to OData}
}

然后将您的控制器更改为

public JsonResult GetEmployees(string employeeId)
  {
        var employee = employeeRepository.GetById(employeeId);
        return Json(employee,JsonRequestBehavior.AllowGet);
  }

那么您将能够轻松地进行数据访问层.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读