【问题标题】:Getting react-datepicker to appear correctly when using react-testing-library使用 react-testing-library 时让 react-datepicker 正确显示
【发布时间】:2019-10-17 14:48:31
【问题描述】:

我一直在试图弄清楚如何让 react-testing-library 与 react-datepicker 一起工作。

到目前为止,我已经能够正确包装输入框,并且可以通过 getByLabelText 函数访问它,但是无论我触发什么事件,我似乎都无法让日期选择器出现文本框。

我已经能够使用基本 Enzyme 方法来显示日期选择器,但它似乎不想通过 react-testing-library 工作。 这是我面临的问题的工作版本:https://codesandbox.io/s/compassionate-bose-8gpbt

【问题讨论】:

    标签: reactjs jestjs create-react-app react-testing-library react-datepicker


    【解决方案1】:

    我认为getByLabelText 不会起作用,因为来自 react-datepicker 的输入嵌套在一个 div 中(它与 react-testing-library 中的任何 example usages 都不匹配)。

    我能做的最好的事情是使用getByText 定位From: 文本,然后在文档中查找本月/年:https://codesandbox.io/s/sleepy-neumann-hnpr5

    【讨论】:

    • 我之前曾尝试将断言更改为toBeInTheDocument,但我意识到它通过只是因为html中已经有日期选择器代码,但在控件被正确激活之前它是不可见的,这是我最感兴趣的断言。
    • 在激活日期选择器之前,实际上不会呈现月/年文本。您实际上可以在激活日期选择器之前尝试查询它,它会失败。查看我更新的代码沙箱:codesandbox.io/s/sleepy-neumann-hnpr5
    • 那么这对您来说是上游问题吗?我希望选择器在某些时候可见,但这可能是我对测试反应组件的误解。
    • 老实说,我认为 .toBeVisible() 断言应该是您测试这种特殊情况的方式,但由于某种原因,当您使用 react 触发点击事件时,数据选择器弹出框的不透明度为 0测试库。不知道是什么原因造成的。
    • 我在周五晚些时候对 Enzyme 的事件机制进行了一些实验,并且 toBeVisible 断言通过了,所以我认为它与 react-testing-library 有关。
    猜你喜欢
    • 2019-05-21
    • 2022-12-05
    • 2023-01-05
    • 2019-07-07
    • 2019-10-25
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多