【发布时间】:2022-01-06 11:35:43
【问题描述】:
如何使用 React 测试库来定位一个只有 type 属性的空白 <input> 元素?
例如,我的输入将动态填充属性等,类似于它周围的标签:
<label htmlFor={labelInput}>
{labelText}
</label>
<input
type="text"
id={labelInput}
name={labelInput}
...
/>
但是虽然我没有向它传递任何东西,但它看起来像:
<input type="text" />
我一直在阅读我可以使用 getByRole('input') 或 getByRole('textbox') 来定位它,因为它具有 type="text" 属性,但是当断言其他属性不是时我似乎无法让它正常工作现在。
例如,我无法让它看到我正在执行用户操作以在输入中键入文本...
const input = getByRole('textbox');
userEvent.type(input, 'some-text');
expect(input).toHaveAttribute('value', 'some-text');
这个测试返回:
expect(element).toHaveAttribute("value", "some-text") // element.getAttribute("value") === "some-text"
Expected the element to have attribute:
value="some-text"
Received:
null
24 |
> 25 | expect(input).toHaveAttribute('value', 'some-text');
【问题讨论】:
标签: javascript reactjs unit-testing input react-testing-library