如何自动创建控制器的集成测试?

时间:2017-03-07 16:56:10

标签: c# .net visual-studio nunit restsharp

努力围绕大约100个控制器创建集成测试,使用以下方法:

    [Route("Lead", Name = "GetLeadsUsingQueryOptions")]
    [HttpGet]
    public IEnumerable<Lead> GetLeadsUsingQueryOptions(ODataQueryOptions oDataQueryOptions)
    {
        var leads = _leadService.GetLeads(oDataQueryOptions);
        return leads;
    }

相应的集成测试类似于:

    [TestMethod]
    public void GetLeadsUsingQueryOptions_Returns_IEnumerable_Of_Leads()
    {
        var request = new RestRequest("Lead", Method.GET);
        request.AddHeader("Accept", "application/json");
        request.AddHeader("X-Request-ID", Guid.NewGuid().ToString());
        request.AddHeader("X-Client-ID", Guid.NewGuid().ToString());
        request.AddParameter("filter", @"LeadId eq guid'"+TestConstants.LeadGuid.ToString()+"'&amp;$top=5", ParameterType.QueryString);
        var response = GetTestClient().Execute<List<Xrm.Lead>>(request);

        Console.Write(request.ToString());
        Console.WriteLine(response.Content);
        Console.WriteLine(response.Data.DumpToString("Response"));

        Assert.That(response.Data, Is.InstanceOf<IEnumerable<Xrm.Lead>>());
        Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
    }

不必为每个控制器中的每个方法创建单独的测试,是否可以创建T4模板或其他东西,以便只对所有控制器中的所有方法应用集成测试? /强>

0 个答案:

没有答案