C# 如何配置ASP.NET Web Api 2 OData服务的内存单元测试?

C# 如何配置ASP.NET Web Api 2 OData服务的内存单元测试?,c#,unit-testing,asp.net-web-api,odata,in-memory,C#,Unit Testing,Asp.net Web Api,Odata,In Memory,介绍了一种在内存中测试ASP.NET Web API站点的优雅方法:使用HttpServer作为构造函数参数创建HttpClient实例,然后在同一进程中执行该客户端的请求 我正试图通过OData服务实现同样的目标。我使用ASP.NET Web Api 2 OData类编译了一个示例OData服务,在客户端项目中生成了服务引用(并引用了网站项目),但测试代码不与OData服务通信。代码如下: var ctx = new Container(new Uri("http://www.myse

介绍了一种在内存中测试ASP.NET Web API站点的优雅方法:使用HttpServer作为构造函数参数创建HttpClient实例,然后在同一进程中执行该客户端的请求

我正试图通过OData服务实现同样的目标。我使用ASP.NET Web Api 2 OData类编译了一个示例OData服务,在客户端项目中生成了服务引用(并引用了网站项目),但测试代码不与OData服务通信。代码如下:

    var ctx = new Container(new Uri("http://www.myservice.com/"));
    CollectionAssert.IsNotEmpty(ctx.Products);

我可以看到它正在对容器Web站点进行内存调用,但它没有到达OData服务。我是否缺少一些配置技巧?

您在服务器上运行的是哪个版本的.net?您使用什么来承载Web API?HttpServer+.NET4.0?尝试升级到.NET4.5并改用OWin。我花了整整一个晚上试图让它与该组合一起工作,最后我不得不求助于IIS…我使用的是.net 4.5,主机使用的是IIS(实际上是IIS Express,但这不重要,因为我尝试在内存中托管)。我没有尝试OWIN,只是尝试使用本文中描述的解决方案,它适用于HttpClient请求,但在我尝试使用OData提要时不起作用。请尝试OWIN托管。该示例使用HttpServer而不是IIS。现在已经不支持了,看看nuget吧。您所称的内存托管通常称为自托管,即在没有iis的情况下自托管。Web API的运行级别低于MVC。好的,谢谢,我来试试。