1

我正在使用 Polymer 开发 Web 前端。我有一个使用其他 Web 组件的 Web 组件,例如纸张输入或一些自定义 Web 组件。出于演示目的,我使用 sinon fake xhr 服务器来模拟一些弹性搜索请求,这对于测试来说非常好。在 webcomponents 中,我使用聚合物 appLocalizeBehavior 从 json 文件加载一些语言环境。AppLocalizeBehavior 使用 iron-request 通过 url 加载文件。我将 sinon 配置为过滤和排除包括“locales.json”在内的所有 url,如下所示:

this._server = sinon.fakeServer.create();
this._server.autoRespond = true;
this._server.xhr.useFilters = true;
this._server.xhr.addFilter(function(method, url) {
    return url.includes("locales.json");
});

如果我禁用 xhr 假服务器,所有组件的语言环境都会正确加载。但是,如果我启用了 sinon,似乎正在加载语言环境,但 sinon 以某种方式以错误的编码返回它们。

有人面临类似的问题吗?

4

1 回答 1

0

有一个待处理的拉取请求来解决这个问题:https ://github.com/sinonjs/nise/pull/45

如果你想在本地解决它,那么在你的bower_components文件夹中的 sinon.js 文件中,你必须替换这行代码:

copyAttrs(["responseText", "response"]);

有了这个:

copyAttrs(["responseText", "response", "responseType"]);

于 2018-04-26T19:53:06.140 回答