Ember.js Ajax POST请求未通过Mirage

时间:2019-10-01 16:04:02

标签: javascript ajax ember.js mirage

我正在为Ember应用程序中的某个组件编写一些测试,其中该组件向我的服务器API执行ajax POST请求,该请求将返回文件位置的字符串。

我在mirage/config.js文件中添加了执行ajax请求时应使用的路由。

  this.post('/foobar', () => {
    return "test";
  });

运行测试时,我可以在网络选项卡和控制台中看到ajax请求正在尝试在我的本地主机上执行,但收到​​连接被拒绝的错误。

POST http://localhost:8000/foobar net::ERR_CONNECTION_REFUSED

在将调试器放入mirage/config.js文件中时,它并没有在那里停止,并且似乎完全忽略了我的mirage/config.js中的路由。

URL和名称空间都在配置文件中设置。

当我在本地主机上运行我的应用程序并命中此端点时,它会正确通过Mirage。但这在测试过程中不使用海市rage楼。

发出ajax请求的代码。

ajax.request(
        uri.toString(),
        {
          headers: ajax.get('headers'),
          method: 'POST',
          data: data
        });

这是通过单击按钮完成的,这是我从集成测试中“单击”的结果。

我该怎么做才能进一步测试,以找出为什么请求没有通过海市rage楼?

1 个答案:

答案 0 :(得分:1)

事实证明,问题出在我开始进行集成测试的海市rage楼。

https://www.ember-cli-mirage.com/versions/v0.4.x/manually-starting-mirage/

按照这些步骤,我能够正确地启动Mirage,并使我的测试正常工作。