我正在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
});
这是单击按钮完成的,这是我从集成测试中“单击”的结果。
我该怎么做才能进一步测试,找出为什么请求没有通过Mirage?
事实证明,问题出在整合测试中我开始幻影。
https://www.ember-cli-mirage.com/versions/v0.4.x/manually-starting-mirage/
按照这些步骤,我可以正确地启动Mirage并使测试正常工作。