访问占位符文本以使用 jest 进行验证

N.A*_*N.A 3 javascript unit-testing reactjs jestjs

我正在尝试访问此表单输入标记中的占位符文本,只是为了验证文本是否正确:

  <form>
    <input name="form" className="form-classname" placeholder="Text inside placeholder"/>
  </form>
Run Code Online (Sandbox Code Playgroud)

我浅层渲染此组件,并尝试过此操作,但由于这是占位符而不是文本,因此节点返回一个空字符串作为输入(如预期的那样)。

expect(wrapper.find('.form-classname').at(0).text()).toEqual('Text inside placeholder')
Run Code Online (Sandbox Code Playgroud)

关于下一步尝试什么的建议?

Ale*_*sky 5

要访问该属性,placeholder您需要使用props()。这公开了一个对象,其中包含分配给相应元素的道具以及属性。

expect(wrapper.find('.form-classname').at(0).props().placeholder).toEqual('Text inside placeholder')
Run Code Online (Sandbox Code Playgroud)

text()在这种情况下无效,因为将用于获取某种块元素内的文本。例如,如果您想验证“foobar”是否包含在其中<span>foobar</span>,您可以使用text()来获取 中的文本<span>

希望这有帮助!