Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法模拟OdataQueryOptions_C#_Unit Testing_Odata - Fatal编程技术网

C# 无法模拟OdataQueryOptions

C# 无法模拟OdataQueryOptions,c#,unit-testing,odata,C#,Unit Testing,Odata,我需要在使用odata的web api中对控制器进行单元测试 我使用Moq来模拟实体框架。我无法模拟OdataQueryOptions作为参数传递给控制器的操作 [TestMethod] public void TestMethod1() { var data = new List<ActivationRequestLog> { new ActivationRequestLog { ActivationReque

我需要在使用odata的web api中对控制器进行单元测试

我使用Moq来模拟实体框架。我无法模拟OdataQueryOptions作为参数传递给控制器的操作

[TestMethod]
    public void TestMethod1()
    {
        var data = new List<ActivationRequestLog>
        {
            new ActivationRequestLog { ActivationRequestLogID=1, SourceTokenType="happy", ProductKeyID=20140265000001, ActivationStatusCode="", AttemptDateOffset=null, HWID="", LogCreatedDateOffset=null },
            new ActivationRequestLog { ActivationRequestLogID=1, SourceTokenType="happy", ProductKeyID=20140265000001, ActivationStatusCode="", AttemptDateOffset=null, HWID="", LogCreatedDateOffset=null },
            new ActivationRequestLog { ActivationRequestLogID=1, SourceTokenType="happy", ProductKeyID=20140265000001, ActivationStatusCode="", AttemptDateOffset=null, HWID="", LogCreatedDateOffset=null },
        }.AsQueryable();

        var mockSet = new Mock<DbSet<ActivationRequestLog>>();
        mockSet.As<IQueryable<ActivationRequestLog>>().Setup(m => m.Provider).Returns(data.Provider);
        mockSet.As<IQueryable<ActivationRequestLog>>().Setup(m => m.Expression).Returns(data.Expression);
        mockSet.As<IQueryable<ActivationRequestLog>>().Setup(m => m.ElementType).Returns(data.ElementType);
        mockSet.As<IQueryable<ActivationRequestLog>>().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator());
        var mockContext = new Mock<AVSDataAccessViewEntities>();
        mockContext.Setup(c => c.ActivationRequestLogs).Returns(mockSet.Object);
        var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost/someurl");

        //var opts = new ODataQueryOptions<ActivationRequestLog>(new ODataQueryContext(modelBuilder.GetEdmModel(), typeof(ActivationRequestLog),path), request);
        var service = new AVSController(mockContext.Object);
        var activationRequestLog = service.GetActivationRequestLog(opts);
        Assert.AreEqual(2, activationRequestLog.Count());


    }
}
[TestMethod]
公共void TestMethod1()
{
var数据=新列表
{
新的ActivationRequestLog{ActivationRequestLogID=1,SourceTokenType=“happy”,ProductKeyID=20140265000001,ActivationStatusCode=“”,AttemptDateOffset=null,HWID=“”,LogCreatedDateOffset=null},
新的ActivationRequestLog{ActivationRequestLogID=1,SourceTokenType=“happy”,ProductKeyID=20140265000001,ActivationStatusCode=“”,AttemptDateOffset=null,HWID=“”,LogCreatedDateOffset=null},
新的ActivationRequestLog{ActivationRequestLogID=1,SourceTokenType=“happy”,ProductKeyID=20140265000001,ActivationStatusCode=“”,AttemptDateOffset=null,HWID=“”,LogCreatedDateOffset=null},
}.AsQueryable();
var mockSet=new Mock();
mockSet.As().Setup(m=>m.Provider).返回(data.Provider);
mockSet.As().Setup(m=>m.Expression).Returns(data.Expression);
mockSet.As().Setup(m=>m.ElementType).Returns(data.ElementType);
mockSet.As().Setup(m=>m.GetEnumerator()).Returns(data.GetEnumerator());
var mockContext=new Mock();
Setup(c=>c.ActivationRequestLogs).Returns(mockSet.Object);
var request=newhttprequestmessage(HttpMethod.Get)http://localhost/someurl");
//var opts=新的ODataQueryOptions(新的ODataQueryContext(modelBuilder.GetEdmModel(),typeof(ActivationRequestLog),path),request);
var服务=新的AVSController(mockContext.Object);
var activationRequestLog=service.GetActivationRequestLog(opts);
AreEqual(2,activationRequestLog.Count());
}
}
}


我需要找到一种合适的方法来初始化变量opts,odata的测试对您有帮助吗

ODataQueryContext context=新的ODataQueryContext(EdmCoreModel.Instance,typeof(int));
HttpRequestMessage请求=新建HttpRequestMessage();
request.EnableHttpDependencyInjectionSupport();
模拟查询选项=新模拟(上下文、请求);
        ODataQueryContext context = new ODataQueryContext(EdmCoreModel.Instance, typeof(int));
        HttpRequestMessage request = new HttpRequestMessage();
        request.EnableHttpDependencyInjectionSupport();
        Mock<ODataQueryOptions> queryOptions = new Mock<ODataQueryOptions>(context, request);