如何从ember验证测试中访问mock api端点?

时间:2015-07-22 21:45:45

标签: ember.js ember-data ember-cli

我在/api/users下有一个 server/mocks/users模拟终结点

当我运行ember s时,它在浏览器中运行良好,但是当我运行ember test 验收测试访问{{1}时,它失败了}路线。我为users获得404, Not found。我所有的单元测试都通过了。

我错过了什么?

3 个答案:

答案 0 :(得分:2)

您可能需要考虑使用Pretender来模拟您的api端点。

npm install --save-dev ember-cli-pretender

然后,您可以使用JSON数据创建模拟文件(我们通常使用/ tests / fixtures / filename)。然后只需要导入该文件并调用伪装者。导入模拟(随意调用它):

import mockJSON from '../fixtures/apiMock';

然后在测试的设置功能上设置伪装器:

const server = new Pretender(function() {
  function response(content, statusCode = 200, headers = { 'Content-Type': 'application/json' }) {
    return [statusCode, headers, JSON.stringify(content)];
  }

  this.get('/api/1', function() {
    return response(mockJSON);
  });
 })

响应函数填充标题,然后只需要拉入我们的模拟JSON。我们使用一个名为“setup-pretender”的帮助程序来执行此操作,因此您只需在安装程序中调用setupPretender()并可以访问所有模拟。

答案 1 :(得分:1)

似乎这还不可能。

我决定改用ember-cli-mirage

答案 2 :(得分:0)

答案在ember-cli主页上:

  

模拟只是为了发展。整个/服务器目录将是   在ember构建和余烬测试期间被忽略。

但是,Ember.js有一个插件:ember-cli-testem-http-mocks