我正在使用rails 4,capybara,poltergeist来测试我的rails 4 + angularjs app。在我的角度应用程序中,我的指令控制器中有一个地方有以下代码。
var audience = [someObject1, someObject2, someObject3].findIndex(function(object) {
return object.id === 1;
});
我在测试期间遇到以下错误
Error: undefined is not a constructor (evaluating '[1,2,3].findIndex(function(v) { return v === 1; })')
实际上它甚至不允许我拥有这样的东西
[1, 2, 3].findIndex(function(v) {
return v === 1;
});
任何人都知道为什么恶作剧者不喜欢Javascript的find
和findIndex
方法?
答案 0 :(得分:6)
find和findIndex是ES6方法,phantomJs可能不支持。如果您没有运行phantomjs 2.1.1,您可以尝试更新,否则您可以使用poltergeist驱动程序配置中的extensions
选项加载polyfill,或者重写代码以不使用ES6方法