我正在尝试对OData控制器进行单元测试,但API已更改,之前推荐的方法我尝试不起作用 - 目前我正在使用
没有注册非OData HTTP路由.
当试图将ODataQueryOptions实例化为传递给控制器的Get方法时
我当前的代码(基于像回答这一个):
[TestMethod()]
public void RankingTest()
{
var serviceMock = new Mock<IVendorService>();
serviceMock.SetReturnsDefault<IEnumerable<Vendor>>(new List<Vendor>()
{
new Vendor() { id = "1" }
});
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/odata/Vendor");
ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Vendor>("Vendor");
var model = builder.GetEdmModel();
HttpRouteCollection routes = new HttpRouteCollection();
HttpConfiguration config = new HttpConfiguration(routes) { IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always };
// attempting to register at least some non-OData HTTP route doesn't seem to help
routes.MapHttpRoute("Default", "{controller}/{action}/{id}",
new
{
controller …Run Code Online (Sandbox Code Playgroud)