我正在尝试修补创建的对象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
函数时,该方法将被设置为该对象。