Angular / Gulp 应用程序的模拟后端
Mock backend for Angular / Gulp app
我想在不依赖真实后端的情况下提供 json 响应来模拟后端以加快开发速度。前端应用程序是一个 Angular 应用程序,我们使用 Gulp 作为开发和构建工具。
例如具有特定的 api (.../custumers/123) return 静态 json 结果。
是否可能已经有一个 gulp 工具?
您可以为此使用 mock server。
我选择了 json-server and gulp-json-srv,我认为它有一些简单和快速设置的好处。
gulpfile.js 配置启动 json-server 并使用 "gulp mock" 任务代理 http 调用:
gulp.task('mock', ['connect-mock'], function () {
jsonServer.start({
data: 'db.json',
port: 8087
});
});
gulp.task('connect-mock', function () {
connect.server({
port: 8085,
livereload: true,
middleware: function (connect, o) {
return [(function () {
var url = require('url');
var proxy = require('proxy-middleware');
var options = url.parse('http://127.0.0.1:8087');
options.route = '/v2';
return proxy(options);
})()];
}
});
});
db.json 模拟数据:
{
"customers": [
{ "id": 1, "name": "Johnny B" },
{ "id": 2, "name": "Steve G" },
{ "id": 3, "name": "Glenn H" }
]
我建议您查看 https://github.com/wongatech/angular-multimocks。这允许您为您的 api 创建模拟响应,并允许您通过应用程序中的 url 在它们之间实时切换。
我们最初是在我工作的地方创建它来解决这个确切问题的,现在伦敦的多家大型科技公司都在使用它。
您可以像下面这样定义每个模拟,您可以为一个资源创建多个不同的响应,然后将它们安排到场景中。文件 mockResources.json
定义了可用的场景和
描述每个场景应该使用每个资源的哪个版本。
模拟示例:
{
"httpMethod": "GET",
"statusCode": 200,
"uri": "/customer/cart",
"response": {
"id": "foo"
}
}
场景列表示例:
{
"_default": [
"root/_default.json",
"account/anonymous.json",
"orders/_default.json"
],
"loggedIn": [
"account/loggedIn.json"
]
}
它允许您模拟不同的休息动词、不同的 uris、添加响应延迟(用于测试缓慢的响应,或者也让您的应用程序更生动)。
它是我们开发的核心部分,与我们的验收测试紧密结合。
查看演示@ http://tech.wonga.com/angular-multimocks,项目自述文件提供了有关设置的详细说明,很乐意帮助解决任何进一步的问题。
我想在不依赖真实后端的情况下提供 json 响应来模拟后端以加快开发速度。前端应用程序是一个 Angular 应用程序,我们使用 Gulp 作为开发和构建工具。
例如具有特定的 api (.../custumers/123) return 静态 json 结果。
是否可能已经有一个 gulp 工具?
您可以为此使用 mock server。
我选择了 json-server and gulp-json-srv,我认为它有一些简单和快速设置的好处。
gulpfile.js 配置启动 json-server 并使用 "gulp mock" 任务代理 http 调用:
gulp.task('mock', ['connect-mock'], function () {
jsonServer.start({
data: 'db.json',
port: 8087
});
});
gulp.task('connect-mock', function () {
connect.server({
port: 8085,
livereload: true,
middleware: function (connect, o) {
return [(function () {
var url = require('url');
var proxy = require('proxy-middleware');
var options = url.parse('http://127.0.0.1:8087');
options.route = '/v2';
return proxy(options);
})()];
}
});
});
db.json 模拟数据:
{
"customers": [
{ "id": 1, "name": "Johnny B" },
{ "id": 2, "name": "Steve G" },
{ "id": 3, "name": "Glenn H" }
]
我建议您查看 https://github.com/wongatech/angular-multimocks。这允许您为您的 api 创建模拟响应,并允许您通过应用程序中的 url 在它们之间实时切换。
我们最初是在我工作的地方创建它来解决这个确切问题的,现在伦敦的多家大型科技公司都在使用它。
您可以像下面这样定义每个模拟,您可以为一个资源创建多个不同的响应,然后将它们安排到场景中。文件 mockResources.json
定义了可用的场景和
描述每个场景应该使用每个资源的哪个版本。
模拟示例:
{
"httpMethod": "GET",
"statusCode": 200,
"uri": "/customer/cart",
"response": {
"id": "foo"
}
}
场景列表示例:
{
"_default": [
"root/_default.json",
"account/anonymous.json",
"orders/_default.json"
],
"loggedIn": [
"account/loggedIn.json"
]
}
它允许您模拟不同的休息动词、不同的 uris、添加响应延迟(用于测试缓慢的响应,或者也让您的应用程序更生动)。
它是我们开发的核心部分,与我们的验收测试紧密结合。
查看演示@ http://tech.wonga.com/angular-multimocks,项目自述文件提供了有关设置的详细说明,很乐意帮助解决任何进一步的问题。