qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          Web Api單元測試寫法

           例如我們在Web Api項目中有個Controller
          public class SomeController : ApiController
          {
          public HttpResponseMessage Get()
          {
          // 一些操作
          return Request.CreateResponse(HttpStatusCode.OK, someModel);
          }
          }
            如果你在單元測試中直接調用 SomeController 的Get()方法,那么你將會收到一個Exception提示Request為Null。
            因此我們需要在測試代碼中構造一個Request,有兩種方法
            1、簡單構造法
          [TestMethod]
          public void UnitTestMethod()
          {
          // 環境準備部分
          YourNameSpace.Controllers.SomeController controller = new SomeController();
          // 下面兩個語句是構造一個簡單的請求報文
          controller.Request = new HttpRequestMessage();
          controller.Request.SetConfiguration(new HttpConfiguration());
          var result = controller.Get();
          // 斷言
          }
            2、可控性更強的構造
          [TestMethod]
          public void UnitTestMethod()
          {
          // 環境準備部分
          YourNameSpace.Controllers.SomeController controller = new SomeController();
          var config = new HttpConfiguration();
          var request = new HttpRequestMessage(HttpMethod.Post, "YourUrl");
          var route = config.Routes.MapHttpRoute("DefaultApi", "api/{controller}/{id}");
          var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "products" } });
          controller.ControllerContext = new HttpControllerContext(config, routeData, request);
          controller.Request = request;
          controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config;
          var result = controller.Get();
          // 斷言
          }
            然后就可以運行單元測試查看結果了。

          posted on 2014-05-04 12:56 順其自然EVO 閱讀(381) 評論(0)  編輯  收藏 所屬分類: web 前端性能測試

          <2014年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 进贤县| 太保市| 教育| 舒城县| 政和县| 阿巴嘎旗| 德昌县| 滦平县| 新宁县| 汉中市| 定结县| 民和| 翁牛特旗| 牡丹江市| 平邑县| 遂昌县| 准格尔旗| 锡林浩特市| 农安县| 阿克苏市| 天水市| 库车县| 岳池县| 临安市| 镇宁| 年辖:市辖区| 东城区| 措勤县| 佛山市| 六安市| 剑阁县| 敦化市| 子长县| 满洲里市| 鹤峰县| 青龙| 宁安市| 汤原县| 寻乌县| 周宁县| 如东县|