Ember CLI with http-mock and pretender, 如何管理模拟数据
Ember CLI with http-mock and pretender, how to manage mock data
我是Javascript的新手,尤其是EmberJS和Ember CLI。我试图找出在基于 Ember CLI 的项目中管理模拟数据的最佳实践是什么。我现在在 0.1.14 EmberCLI 上。
根据 EmberCLI 文档,http-mock 是为 Ember Data 模型提供模拟数据的首选方式。所以我使用生成的 http-mock 并向其中添加了一些测试数据。
var testData = [
...
];
module.exports = function(app) {
var express = require('express');
var todosRouter = express.Router();
todosRouter.get('/', function(req, res) {
res.send({
"todos": testData
});
});
然后我发现 http-mock 在集成过程中不起作用,所以我添加了 Pretende。
import Ember from 'ember';
import { test } from 'ember-qunit';
import Pretender from 'pretender';
import startApp from '../helpers/start-app';
var App;
var server;
var testData = [
...
];
module('An Integration test', {
setup: function() {
App = startApp();
server = new Pretender(function(){
this.get('/api/todos', function(request){
return [ 200, {"Content-Type": "application/json"},
JSON.stringify({'todos': testData) ];
});
});
},
teardown: function() {
...
}
});
test('3 items loaded at startup', function() {
...
});
http-mock 和集成测试都工作正常,然后我尝试将测试数据放在一个单独的模块中,以便可以共享它们。问题是集成测试使用 ES6 风格的模块导入,而 http-mock 使用 CommonJS 风格的模块定义,我不知道如何将它们组合到项目中。
如果我将数据构造到 ES6 模块中,
var mockData = [
...
];
export default {
all: mockData
};
它适用于集成测试,但 HTTP-mock 抱怨意外的保留字"导出"。如果将其转换为 CommonJS 样式的 module.export,那么我在集成测试中看不到数据。
现在的问题:
- 我认为如果 Broccoli 将 ES6 模块"编译"为 CommonJS 格式,它应该与 http-mock 一起使用,但我不知道该怎么做。这是正确的方向吗,如何前进?
- 我必须在同一项目中同时使用 http-mock 和 Pretender 吗?我可以同时使用一个进行开发和集成测试吗?
我被困在这里,非常感谢评论、建议和代码示例。
我
不确定,但我认为这个名为 ember-cli-mirage
的 Ember CLI 插件可能会做你正在寻找的东西。 我自己还没有用过它,但我听说过关于它的好事,它似乎可以处理你想使用模拟服务器进行开发和测试而不保留两套夹具的情况。
相关文章:
- 如何在具有某些 UI 视图的状态中管理工厂单个请求数据
- 使用2个控制器管理工厂JSON$http数据
- Modx数据包管理器ext-all.js错误
- Kurento数据通道的创建和管理
- 如何在应用中管理到 Firebase 数据的动态路径
- 在我的代码中管理大量硬编码数据的最佳方法
- 我应该如何在Node中管理内存中的数据
- 在Flux体系结构中,如何管理存储相同类型数据的存储
- 用Javascript管理大量数据
- 谷歌标签管理器,事件推送到数据层
- 如何管理原始对象之间的数据依赖关系
- Ajax 数据管理
- Ember CLI with http-mock and pretender, 如何管理模拟数据
- JavaScript:如何最有效地管理跨两个文件的数据导入
- 如何在 csv 对象数据中插入标头以使用 d3.js 进行管理
- 谁在套接字(服务器端)上正确管理mongodb数据
- 表单放弃数据谷歌标签管理器
- 管理数据访问/用户权限
- Sails.js如何在不保存在数据库中的情况下管理数据
- angularJS services——用于检索数据的返回承诺和用于管理数据的对象