Material-UI的Select组件是否使用超时或其他时间函数然后关闭?我一直在尝试找到代码的实现,也尝试调试,但是找不到答案。
由于在使用Cypress测试框架及其在Select组件上的clock()方法编写GUI测试时遇到的一个问题,我需要知道这一点。
clock方法用于覆盖日期,setTimeout和clearTimeout(https://docs.cypress.io/api/commands/clock.html#Syntax)等时间功能。
在未指定我仅要覆盖Date的情况下使用此选项时,Select组件未按预期关闭。实际的下拉菜单关闭,但不可见的背景div(#menu-.presentation)保持不变,从而在cypress希望继续测试运行时隐藏了所有其他组件。
除了预期的与日期相关的错误外,测试无需任何检查即可正常进行。这使我认为,即使我找不到任何证据,“选择”还是会使用超时。我真的很想了解这种行为。
我没有使用本机选择。
相关的依赖项具有以下版本:
“ @ material-ui / core”:“ 4.3.2”
“柏树”:“ 3.2.0”
“ cypress-testing-library”:“ 2.4.0”
答案 0 :(得分:0)
由于涉及的不同组件数量众多,因此遍历代码很复杂,但是如果仔细研究所有这些组件,最终会发现setTimeout
。
Select
uses SelectInput SelectInput
uses Menu Menu
uses Popover Popover
uses Grow作为其默认TransitionComponent
。Grow
uses setTimeout Grow
还使用了Transition
和uses setTimeout中的react-transition-group
。