【问题标题】:Invoke readystatechange event in enzyme在酶中调用 readystatechange 事件
【发布时间】:2018-09-12 14:22:49
【问题描述】:

我有一个 react 类,它在 componentDidMount 中有 addEventListener 如下:

componentDidMount() {
document.addEventListener('readystatechange', () => {
  if (document.readyState === 'complete'){
   /* Make some api call */
   /*Need to test code written here*/
  }
});
}

readystatechange事件触发'document.readyState'的变化,document.readystate是只读的,如何模拟这个调用?

【问题讨论】:

    标签: reactjs enzyme readystate


    【解决方案1】:

    我们用来测试函数内部代码的一种解决方法:

     let sandbox, addEventListener;
     sandbox = sinon.sandbox.create();
     addEventListener = sandbox.stub(document, 'addEventListener'); 
     expect(addEventListener.args[0][0]).equal('readystatechange');
     addEventListener.args[0][1](); //Call this function that has been registered to this event
    
     expect(api.someFunction).to.have.been.called;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-05
      • 2016-12-30
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 2019-06-28
      • 1970-01-01
      相关资源
      最近更新 更多