React Testing Library 中 userEvent 与 fireEvent 的区别是什么,为什么官方推荐 userEvent
围绕“React Testing Library 中 userEvent 与 fireEvent 的区别是什么,为什么官方”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 userEvent 模拟完整用户交互序列(hover、focus、逐字符输入)而 fireEvent 只派发单个事件。
测试专题面试题第 3 页,显示第 101–109 题,共找到 109 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
围绕“React Testing Library 中 userEvent 与 fireEvent 的区别是什么,为什么官方”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 userEvent 模拟完整用户交互序列(hover、focus、逐字符输入)而 fireEvent 只派发单个事件。
围绕“Testing Library 的 waitFor 何时使用,它与 findBy 查询的重试机制有什么重叠与分工”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确对非查询类断言的轮询重试用 waitFor、查找元素用 findBy 的分工。
围绕“Testing Library 的 within 在什么场景比全局 screen 查询更可靠”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确将查询限定在某个容器子树内以避免重复元素冲突的场景与写法。
围绕“Vitest 中 jsdom 与 happy-dom 环境的选择依据是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 jsdom 兼容性更全、happy-dom 更快的取舍及切换配置方式。
围绕“在类型测试里断言 never 或 any 时为什么不能直接用相等比较”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 any 的双向兼容与 never 的条件类型短路会破坏朴素相等判断,需要交叉函数签名判等技巧。
围绕“如何用类型快照测试防止库导出的公共 API 类型被意外改动”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖给出对导出符号做类型断言快照并在 CI 中校验的方案边界。
围绕“发布类型库时为什么需要 tsd/dtslint 这类类型测试工具而不是普通单测”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断运行期单测无法覆盖类型回归的缺口,说明 expectError 类断言的价值。
围绕“如何用 expect-type 或 vitest 的 expectTypeOf 为类型层面写单元测试”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明类型断言在编译期求值、不产生运行时代码的测试机制与断言粒度;不对比所有类型测试库。
对比模块单例和每次调用创建的 ref,说明多组件隔离、应用级状态、SSR 请求污染、外部监听寿命及测试重置,避免把组合式函数误当作天然独立实例。