Ember-cli:如何在开发和测试环境之间共享装置?

时间:2015-02-08 10:01:29

标签: ember.js ember-cli

我在使用ember-cli开发应用程序原型时使用了http-stub。 我想要的是在测试环境中重用那些存根,但无法弄清楚如何看起来像ember-cli使用一个夹具适配器用于测试环境。

1 个答案:

答案 0 :(得分:3)

有一个PR允许在测试期间使用HTTP Mocks,这听起来像你所描述的,但是确定这不是测试你的应用程序的好方法。

从讨论包括模拟的问题this comment stated

开始
  

......我们可以达成协议,认为模拟对于开发是有用的,但在测试中是反模式。我们决定不再花时间在ember test --server中进行模拟工作,而是展示如何使用Pretender进行适当的模拟测试。

     

Stefan向我展示了使用Pretender进行模拟的示例,测试代码比具有隐藏在./server配置中的响应的模拟服务器更具可读性。这个周末我会花一些时间看看相关PR可以清除什么......

stefanpenner关于如何为测试设置伪装者的示例包含在原始问题中,可以找到here

该示例的示例测试如下所示:

test('searching', () => {
  server.get('/jobs', json(200, {
    jobs: [
      job({ title: 'UI Engineer'     }),
      job({ location: 'Palo Alto', title: 'UI Engineer'     }),
      job({ location: 'Palo Alto', title: 'Backend Engineer'}),
    ]
  }));

  server.get('/companies', json(200, {
    companies: []
  }));

  return visit('/').then(() => {
    equal(numberOfJobs(), 3, 'expected 3 jobs');

    fillIn($('#search-field'), 'UI').then(() => {
      equal(numberOfJobs(), 2, 'expected 2 jobs');
    });

    fillIn($('#search-field'), 'ASDFASDF').then(() => {
      equal(numberOfJobs(), 0, 'expected 0 jobs');
    });

    fillIn($('#search-field'), 'Palo alto').then(() => {
      equal(numberOfJobs(), 2, 'expected 2 jobs');
    });

    return fillIn($('#search-field'), '').then(() => {
      equal(numberOfJobs(), 3, 'expected 3 jobs');
    });
  });
});