2015-10-19 54 views
1

從superagent網站上看​​來,它說:「通過這個技巧,你可以開發前端而不用訪問任何API,這對於在你的計算機上本地工作非常有用,沒有互聯網,或者讓你的功能測試獨立於任何第三方。「如何使用superagent-mock作爲臨時後端

我創建一個配置文件:

// ./config.js file 
module.exports = [ 
    { 
    pattern: 'http://tech.m6web.fr/api/authors', 
    fixtures: './authors.js', 
    callback: function (match, data) { 
     return { body : data }; 
    } 
]; 

嘲笑數據備份到經休息調用返回:

// ./authors.js file 
module.exports = function() { 
    return [ 
    { 
     id: 1, 
     name: "John Doe", 
     description: "unidentified person" 
    }, 
    ... 
    ]; 
}; 

下一個是什麼?它說要放

// ./server.js file 
var request = require('superagent'); 
var config = require('./config.js'); 
var mock = require('superagent-mock')(request, config); 

在server.js文件中。這是我目前有我的休息服務定義的文件嗎?將從superagent導入的request替換爲mock創建的變量?

而不是request.get(url)...

return new Promise ((resolve,reject)=> {request.get(url).end((err,res)=> { err?reject(err):resolve(res) }); }).then(...) 

使用模擬變量產生的? mock.get(url)...

return new Promise ((resolve,reject)=> {mock.get(url).end((err,res)=> { err?reject(err):resolve(res) }); }).then(...) 

var mock爲空..是不是我做錯了什麼?

回答

1

這是SuperAgent的-模擬配置的simpliest例如:

var request = require('superagent'); 
var mock = require('superagent-mock'); 

var config = [ 
    { 
     pattern: 'https://domain.example(.*)', 
     fixtures: function (match, params, headers) { 
      return 'foo' 
     }, 
     get: function (match, data) { 
      return data 
     } 
    } 
]; 

mock(request, config); 

request 
    .get('https://domain.example') 
    .end((err, res) => { 
     console.log(res); // ===> foo 
    }); 

它看起來像API從這個帖子http://tech.m6web.fr/how-did-we-mock-the-backend-developers.html的時代變遷。 github上的官方API是好的https://github.com/M6Web/superagent-mock