React Ref的offsetheight,即使在内容加载后,也为戏j测试用例始终返回“ 0”

时间:2019-04-03 05:50:52

标签: reactjs jestjs testcase

我正在使用反应测试库笑话。在componentdidupdate中,尝试获取“ this.testRef.current.offsetHeight ”,即使加载了内容,offsetHeight也仍为 0 。我想要DOM的确切offsetHeight,因为有一些基于它的条件。

react-testing-library和jest中是否有可能解决的方法。

我正在使用 dangerouslySetInnerHTML 绑定testRef元素的html内容。

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

  const originalOffsetHeight = Object.getOwnPropertyDescriptor(
    HTMLElement.prototype,
    'offsetHeight'
  );
  const originalOffsetWidth = Object.getOwnPropertyDescriptor(HTMLElement.prototype, 'offsetWidth');
  beforeAll(() => {
    Object.defineProperty(HTMLElement.prototype, 'offsetHeight', {
      configurable: true,
      value: 200,
    });
    Object.defineProperty(HTMLElement.prototype, 'offsetWidth', { 
      configurable: true, value: 200 
    });
  });

  afterAll(() => {
    Object.defineProperty(HTMLElement.prototype, 'offsetHeight', originalOffsetHeight);
    Object.defineProperty(HTMLElement.prototype, 'offsetWidth', originalOffsetWidth);
  });