EasyMock使用

EasyMock優(yōu)勢
1. 省去配置、安裝mockJs步驟,解決多人協(xié)作Mock數(shù)據(jù)不互通問題
2. 不需要在項(xiàng)目中寫多余的代碼,例如將Mock 數(shù)據(jù)寫在代碼里、json文件里

  • 平臺默認(rèn)創(chuàng)建了一個(gè)演示項(xiàng)目,打開如下:

    使用時(shí)建議和后臺返回的數(shù)據(jù)一樣

  • 創(chuàng)建接口

    EasyMock的寫法和Mock.js一模一樣
    Mock.js語法

    • 基礎(chǔ)語法
      {
        "status": 0,
        "list|1-4": [{
          "id": "@id",
          "name": "@cname",
          "IP": "@ip",
          "email": "@email",
        }]
      }
    
    • Function使用
    {
      "status": 0,
      name: function({ _req }) {
        return _req.query.name
      },
      data: function({ _req, Mock }){
    
        return _req.query.name ? {
          id: Mock.mock("@id()"),
          cname: Mock.mock("@cname()"),
        } : {}
      },
      "list|1-4": [{
        "id": "@id",
        "name": "@cname",
        "IP": "@ip",
        "email": "@email",
      }]
    }
    
    • Function 參數(shù)說明

      字段 描述
      Mock Mock 對象
      _req.url 獲得請求 url 地址
      _req.method 獲取請求方法
      _req.params 獲取 url 參數(shù)對象
      _req.querystring 獲取查詢參數(shù)字符串(url中?后面的部分),不包含 ?
      _req.query 將查詢參數(shù)字符串進(jìn)行解析并以對象的形式返回,如果沒有查詢參數(shù)字字符串則返回一個(gè)空對象
      _req.body 當(dāng) post 請求以 x-www-form-urlencoded 方式提交時(shí),我們可以拿到請求的參數(shù)對象
      _req.path 獲取請求路徑名
      _req.header 獲取請求頭對象
      _req.originalUrl 獲取請求原始地址
      _req.search 獲取查詢參數(shù)字符串,包含 ?
      _req.host 獲取 host (hostname:port)
      _req.hostname 獲取 hostname
      _req.type 獲取請求 Content-Type,不包含像 "charset" 這樣的參數(shù)
      _req.protocol 返回請求協(xié)議
      _req.ip 請求遠(yuǎn)程地址
      _req.get(field) 獲取請求 header 中對應(yīng) field 的值
      _req.cookies(field) 獲取請求 cookies 中對應(yīng) field 的值
  • 自定義響應(yīng)

    • 當(dāng)定義的數(shù)據(jù)結(jié)構(gòu)中包含 _res 字段的時(shí)候,會進(jìn)入一個(gè)特殊邏輯,可以給返回的請求添加一些定制信息。

      字段 描述
      status 可以定制返回的 http status code,默認(rèn)是 200
      cookies 可以定制需要設(shè)置的 cookie(暫時(shí)不支持設(shè)置過期時(shí)間等)
      headers 可以定制返回的 response 的 header
      data 如果有這個(gè)字段,會以此數(shù)據(jù)直接覆蓋整個(gè)返回的數(shù)據(jù),并且此處不支持 mock 的語法(如果 _res.status 的值為 200,則不會覆蓋默認(rèn)定義的 mock 數(shù)據(jù))
      {
        "success": true,
        "data": {
          "default": "hah"
        },
        "_res":{
          "status": 400,
          "data": {
              "success": false
           },
          "cookies": {
            "test": "true"
          },
          "headers": {
            "Power": "easy-mock"
          }
        }
      }
    

    以此定義為例,當(dāng) _res.status 的值為 400 的時(shí)候,用戶端接收到的響應(yīng)將會是 _res.data 中定義的數(shù)據(jù),并且返回一個(gè) status code 為 400 的響應(yīng),響應(yīng)的 header 中會包含一個(gè)叫做 Power 的值,并為瀏覽器設(shè)置一個(gè)叫做 test 的 cookie。

    當(dāng)你想要返回正常的 mock 數(shù)據(jù)的時(shí)候,修改 _res.status 為 200,或者將整個(gè) _res 刪掉即可。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容