小编ker*_*ray的帖子

如何正确单元测试OData v6.0控制器?

我正在尝试对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)

c# unit-testing odata asp.net-web-api2

7
推荐指数
1
解决办法
3094
查看次数

标签 统计

asp.net-web-api2 ×1

c# ×1

odata ×1

unit-testing ×1