0

我正在尝试修补创建的对象react-test-renderer以添加 .findById(testID) 方法,但在对象内部我无法访问对象上的其他方法。这是我的测试文件中的相关代码。

import renderer from 'react-test-renderer'

beforeEach(() => {
  //...

  tree = renderer.create(<MyComponent {...props} />).root

  Object.getPrototypeOf(tree).findById = function (testID) {
    this.findAll((el) => {
      return el.props.testID === testID
    })
  }
})

it('does something', () => {
  const component = tree.findById('myTestId')

  // ...
  expect(/* something */)
})

而不是有findAll方法,this它似乎是全局对象。为什么是这样?我想如果我在一个对象上调用一个方法,this当我使用一个老式function函数时,该方法将被设置为该对象。

4

0 回答 0