.NET webapi 的单元测试
public abstract class MirAPIUnitTestCommon { public abstract string GetBaseAddress(); /// <summary> /// CRUD /// </summary> /// <typeparam name="TResult"></typeparam> /// <param name="api"></param> /// <returns></returns> protected TResult InvokeRequest<TResult, TArguemnt>(string api, HttpMethod httpMethod, TArguemnt arg) { using (var invoker = CreateMessageInvoker()) { using (var cts = new CancellationTokenSource()) { var request = new HttpRequestMessage(httpMethod, api);if (null != arg) { request.Content = new ObjectContent<TArguemnt>(arg, new JsonMediaTypeFormatter()); } HttpClient httpClient = new HttpClient(); using (HttpResponseMessage response = httpClient.SendAsync(request, cts.Token).Result) { string result = response.Content.ReadAsStringAsync().Result; return JsonConvert.DeserializeObject<TResult>(result); } } } } private HttpMessageInvoker CreateMessageInvoker() { var config = new HttpConfiguration(); WebApiConfig.Register(config); var server = new HttpServer(config); var messageInvoker = new HttpMessageInvoker(server); return messageInvoker; } }