ember-cli-mirage错误:处理程序返回任何内容,但处理程序存在

时间:2016-11-30 04:12:51

标签: ember.js ember-cli-mirage pretender.js

在我正在使用的应用中,我们有GET路由验证用户的电子邮件地址。如果电子邮件无效,服务器将回复:

  • 200状态代码
  • 使用Content-Type:application/json; charset=utf-8
  • 的响应标头
  • 并且响应数据本身只是“此电子邮件无效”的字符串

我试图通过以下方式在ember-cli-mirage中模拟这个:

this.get('/ember_api/v1/validations/validate_email', function() {
  return [200, { 'Content-Type': 'application/json' }, "This email is invalid"];

  // also tried this:
  // return new Mirage.Response(200, { 'Content-Type': 'application/json' }, JSON.stringify({"message":"This email is invalid"}));

  // and tried this:
  // return "This email is invalid";
});

测试本身是一个按钮点击,可以触发此请求:

GET "/ember_api/v1/validations/validate_email?email=fakey%40fakefakefake.com&skip_uniq=true"

...而我得到的错误是:

  

伪装者截获GET /ember_api/v1/validations/validate_email?email=tom%40gmail.com&skip_uniq=true但遇到错误:/ ember_api / v1 / validations / validate_email处理程序没有返回任何内容?email = tom%40gmail .COM&安培; skip_uniq =真。记得返回[状态,标题,正文];在你的路线处理程序。

它问我return [status, headers, body],但我在我的处理程序中这样做,它仍然会抛出错误。

这实际上是响应的问题吗?我是否需要编辑我的API以实际返回JSON API格式的对象,以便我可以这样编写测试?

我觉得我应该能够在测试中返回一个字符串,因为这就是应用程序正在做的事情。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

您使用的df['ts3'] = df['datetime'].to_timestamp df.head() datetime ts ts3 0 2016-01-01 00:00:01 1451602801 <bound method Series.to_timestamp of 0 2016... 1 2016-01-01 01:00:01 1451606401 <bound method Series.to_timestamp of 0 2016... 2 2016-01-01 02:00:01 1451610001 <bound method Series.to_timestamp of 0 2016... 3 2016-01-01 03:00:01 1451613601 <bound method Series.to_timestamp of 0 2016... 4 2016-01-01 04:00:01 1451617201 <bound method Series.to_timestamp of 0 2016... 是Mirage版本。您也可以使用适用于当前代码示例的this.get ...