我正在使用 React 测试库,并且我有一个组件,它接收将在<input />
.
const InputComp = (ref) => <Input data-testid="test-input" ref={ref} />
然后我将一个简单useRef()
的形式传递给父组件,例如
const SomeParent = () => {
const myRef = useRef();
return <InputComp ref={myRef} />
}
我现在的问题是,我将如何测试我可以传入一个 ref 并且它将出现在 InputComp 中?
我尝试了以下方法:
it('Should render with a ref', () => {
const testRef = createRef();
const rendered = render(<InputComp ref={testRef} />);
expect(rendered.getByTestId('test-input')).toHaveAttribute(testRef)
expect(rendered.getByTestId('test-input').getAttribute('ref')).toBe(testRef);
});
这两个断言都失败了,原因如下:
Expected the element to have attribute:
{"current": <input data-testid="test-input" />}
Received:
null