Polymer 导入的元素类上没有未定义的ESLint

Polymer 导入的元素类上没有未定义的ESLint,polymer,eslint,polymer-2.x,web-component-tester,Polymer,Eslint,Polymer 2.x,Web Component Tester,我有一个要测试的元素(display enter button.html): 进入这里 类DisplayEnterButton扩展了Polymer.Element{ _btnClick(){ //事情发生了 }); } 我想验证当我单击enter按钮时是否调用了\u btnClick方法。这是我的单元测试: 显示输入按钮 //将套件命名为与测试类型相同的名称 套件('查询选择器测试',函数(){ test('单击时调用函数',函数(){ //选择要触发事件的元素 var circle=fi

我有一个要测试的元素(display enter button.html):


进入这里
类DisplayEnterButton扩展了Polymer.Element{
_btnClick(){
//事情发生了
});
}
我想验证当我单击enter按钮时是否调用了
\u btnClick
方法。这是我的单元测试:


显示输入按钮
//将套件命名为与测试类型相同的名称
套件('查询选择器测试',函数(){
test('单击时调用函数',函数(){
//选择要触发事件的元素
var circle=fixture('fixture-one').shadowRoot.querySelector('.btn');
//监视应该运行的方法
var clickButton=sinon.spy(DisplayEnterButton.prototype,'.'u btnClick');
//触发事件
圈。单击();
//测试一下
调用sinon.assert.called(单击按钮);
});
});
测试正在运行,但我无法通过此ESLint错误:

未定义“DisplayEnterButton”无未定义


如果可能的话,我希望避免ESLint规则异常(例如
全局
),因为我将来会大量使用这种模式。如何解决此错误?

编辑:Tony接受的答案是最佳解决方案

这同样有效,但创建了一个新实例,而不是使用fixture实例

test('On click function called', function() {
        // Create instance of the class we want to test the methods of
        var proto = document.createElement('display-enter-button')
        .constructor.prototype;
        // Replace the method with a spy
        var func = sinon.spy(proto, '_btnClick');
        // Select the elemen to test
        var btn = fixture('fixture-one').shadowRoot.querySelector('.btn');
        // Simulate the trigger
        btn.click();
        // Check if the function was called
        sinon.assert.called(func);
    });

Xavier解决方案的另一个替代方案不涉及创建测试元素的另一个实例,即从测试夹具中获取被测试的实际元素:

<test-fixture id="BasicView">
  <template>
    <!-- give the test element an ID to query for it in tests -->
    <my-view1 id="testEl"></my-view1>
  </template>
</test-fixture>

<script>
  suite('my-view1 tests', function() {
    test('on click', function() {
      var proto = document.getElementById('testEl').constructor.prototype;
      var clickButton = sinon.spy(proto, '_btnClick');
      // ...
    });
  });
</script>

套件('my-view1测试',函数(){
测试('点击',函数()){
var proto=document.getElementById('testEl').constructor.prototype;
var clickButton=sinon.spy(proto,“点击”);
// ...
});
});

谢谢,在阅读了您的代码之后,这就是我想要实现的解决方案。尽管我无法让它工作:错误:无法读取nullOdd的属性“构造函数”。它对我有用。您是否为您的测试元素提供了一个ID为
testEl
?什么浏览器版本?Chrome版本59.0.3071.109(官方版本)(64位)。