Ember.js ajax POST 请求不经过海市蜃楼
Ember.js ajax POST request not going through mirage
我正在为我的 Ember 应用程序中的组件编写一些测试,其中该组件向我的服务器 API 执行 ajax POST 请求,这将 return 文件位置的字符串。
我在 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。但它在测试期间不使用海市蜃楼。
发出 ajax 请求的代码。
ajax.request(
uri.toString(),
{
headers: ajax.get('headers'),
method: 'POST',
data: data
});
这是通过单击按钮完成的,我 "clicking" 来自我的集成测试。
我可以做些什么来进一步测试并找出请求没有通过 mirage 的原因?
原来问题出在我在集成测试中启动 mirage 的方式上。
https://www.ember-cli-mirage.com/versions/v0.4.x/manually-starting-mirage/
按照这些步骤,我能够正确地初始化 mirage 并让我的测试工作。
我正在为我的 Ember 应用程序中的组件编写一些测试,其中该组件向我的服务器 API 执行 ajax POST 请求,这将 return 文件位置的字符串。
我在 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。但它在测试期间不使用海市蜃楼。
发出 ajax 请求的代码。
ajax.request(
uri.toString(),
{
headers: ajax.get('headers'),
method: 'POST',
data: data
});
这是通过单击按钮完成的,我 "clicking" 来自我的集成测试。
我可以做些什么来进一步测试并找出请求没有通过 mirage 的原因?
原来问题出在我在集成测试中启动 mirage 的方式上。
https://www.ember-cli-mirage.com/versions/v0.4.x/manually-starting-mirage/
按照这些步骤,我能够正确地初始化 mirage 并让我的测试工作。