如何在Web Component Tester

时间:2016-12-14 10:58:28

标签: polymer mocha polymer-1.0 web-component-tester

我们有几种情况,我们的Polymer元素具有依赖于全局行为的方法,例如视口大小检测,或者注入全局变量的分析包。

现在我正在尝试使用Web Component Tester测试这些方法,但我看不到如何注入,例如存根到window对象中(例如,可以使用webdriver的execute函数)。我该怎么做?

不起作用的测试示例:

    test('my-element should not crash when `Analytics` is blocked', function () {
        // I'd like window.Analytics in my app to be undefined,
        // but this doesn't work, obviously:
        window.Analytics = undefined;

        myEl = fixture('my-element');
        expect(myEl.ready).to.not.throw();
    });

1 个答案:

答案 0 :(得分:0)

你可以尝试在每个钩子之前或之后以及之后或之后使用。

  var tempAnalytics = window.Analytics;
  before(function() { 
   // runs before all tests in this block
   window.Analytics = undefined;
  });

  after(function() {
    // runs after all tests in this block
    window.Analytics = tempAnalytics;
  });

另一个选择是使用Sinon sandboxes来存根属性。

var sandbox = sinon.sandbox.create();
sandbox.stub(window, "Analytics", undefined);

// then restore when finished like above
sandbox.restore();