Ich benutze OData V4-Client, um Proxy in meinem asp.net mvc 5 zu erstellen. Ich möchte die Controller mit Moq Einheit testen. Gibt es eine Möglichkeit, die OData-Service-Antwort per Container zu verspotten? Unten ist der OData Behälter instantiator:Mock OData Client Container mit Moq
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;
}
}
Unten ist der MVC-Controller:
public JsonResult GetEmployees(string employeeId)
{
var odataContext = ControlEntityContextHelper.GetEntityContext();
var employee = odataContext.Employees.Where(emp => emp.EmployeeId == employeeId);
return Json(employee, JsonRequestBehavior.AllowGet);
}
Jede Hilfe wird sehr geschätzt.
Basierend auf dem, was Sie tun wollen "Ich möchte die Controller testen". Ich würde vorschlagen, eine weitere Ebene für Ihre Daten hinzuzufügen. Repository zum Beispiel. Laut S.O.L.I.D macht Ihr Controller zu viel Personal. – skalinkin