从超级网站上获取,它说:“有了这个提示,您可以开发前端而无需访问任何API。它非常有用,可以在您的计算机上本地工作,无需互联网,或使您的功能测试独立于任何第三方。“
我创建了一个配置文件:
// ./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变量? mock.get(url)...
return new Promise ((resolve,reject)=> {mock.get(url).end((err,res)=> { err?reject(err):resolve(res) }); }).then(...)
但var mock
为空..我做错了吗?
答案 0 :(得分:1)
这是superagent-mock配置的最简单示例:
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
});
从这篇文章http://tech.m6web.fr/how-did-we-mock-the-backend-developers.html开始,api似乎发生了变化。 github上的官方api很好https://github.com/M6Web/superagent-mock。