在我正在使用的应用中,我们有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格式的对象,以便我可以这样编写测试?
我觉得我应该能够在测试中返回一个字符串,因为这就是应用程序正在做的事情。任何帮助表示赞赏。
答案 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
...