.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;
        }
    }
原文地址:https://www.cnblogs.com/mibing/p/8778226.html