努力围绕大约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()+"'&$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模板或其他东西,以便只对所有控制器中的所有方法应用集成测试? /强>