Node.js HTTP 的 clientError 在什么阶段触发,监听后要负责什么?
区分 HTTP 解析层 clientError、服务器 error 和业务异常,说明监听器接管连接清理、400 与 431、重复触发及原始报文日志边界,并给出受控原始连接测试方法。
测试专题面试题第 2 页,显示第 51–100 题,共找到 109 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
区分 HTTP 解析层 clientError、服务器 error 和业务异常,说明监听器接管连接清理、400 与 431、重复触发及原始报文日志边界,并给出受控原始连接测试方法。
解释请求体应在读取时累计真实字节,区分 Content-Length 提前拒绝、分块传输、UTF-8 字节数和解压上限,提供可测试预算函数,并说明 413 与 socket 关闭的协调。
按监听器、空闲连接、活动请求和升级协议比较三个 HTTP 关闭接口,说明 Node 19 的行为变化、先停止监听再强制清理的顺序,以及排空测试应观察的完成条件。
围绕“什么时候应该把 React 组件里的逻辑抽成自定义 Hook,它对组件设计和测试有什么好处”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出『相同状态逻辑出现在多个组件』的抽取信号及 Hook 单独可测的好处。
围绕“如何让依赖网络请求的 React 组件在测试中不真的发请求,设计上要怎么改”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出把数据获取函数作为 props 注入或上移到容器组件的改造方式。
围绕“为什么说保持 React 组件渲染纯净能提高可测试性,哪些副作用会破坏这种纯净”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须指出渲染期修改外部变量、依赖可变全局值等破坏可预测性的写法及修复方向。
围绕“测试 React 组件时为什么应该断言用户可见的行为而不是组件内部 state”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明绑定实现细节的测试在重构时误伤、行为断言稳定的原因及取舍边界。
围绕“React 中把多个组件共享的状态更新逻辑抽成 reducer,相比分散的 useState 在归属和可测试性上带来”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出更新逻辑集中到纯函数、事件派发与状态计算分离便于测试,不展开与 Context 组合的重渲染优化。
从数据可见性、组件组合、消费范围和测试成本比较 props 与 Context,用局部地区设置示例说明怎样减少无意义的中间传递,同时保留清晰的组件依赖。
围绕“设计 useReducer 的 action 时,计算结果应该放进 payload 还是交给 reducer 自己算”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确让 reducer 基于当前 state 自行计算以保证正确性与可测试性的原则及例外情形。
围绕“React Native 的 pointerEvents 四个取值分别解决什么交互问题,遮罩层下点击穿透怎么控制”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要求区分 box-none/box-only 等对子树的命中测试语义。
围绕“React Native 中 Platform.select 与 .android.js/.ios.js 文件后缀分”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按分支粒度、包体影响与可测试性选择行内分支或文件拆分。
围绕“多租户权限系统如何防止越权读取他租户数据,共享表和独立库何时切换”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出 tenant_id 强制注入、测试越权用例与 noisy neighbor 迁移条件。
围绕“端到端测试中如何用 Playwright 验证组件的键盘可达性与焦点顺序”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 page.keyboard.press('Tab') 结合 toBeFocused 断言焦点路径的做法。
围绕“Testing Library 中 getBy、queryBy、findBy 三类查询在元素不存在时的行为差异是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确三者对缺失元素分别抛错、返回 null、异步等待的差异及各自适用断言场景。
围绕“为什么组件测试推荐用 MSW 拦截请求而不是 mock fetch 或 axios 模块”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 MSW 在网络层拦截、与业务代码解耦且请求行为更真实的优势。
围绕“用 Playwright 集成 axe-core 做可访问性扫描时如何组织断言与违规处理”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 AxeBuilder 扫描指定区域、按违规等级断言及对已知问题的豁免管理。
围绕“Playwright 如何用 storageState 复用登录态避免每个测试都走登录流程”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 setup project 登录一次后序列化 cookie/localStorage 供后续测试注入的模式。
围绕“Playwright Component Testing 与用 Vitest+Testing Library 跑组件”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确真实浏览器渲染与 jsdom 模拟在布局、真实事件、视觉上的能力差异及选型依据。
围绕“为什么 Playwright 视觉快照要按浏览器和操作系统分开存基线,CI 上如何保证一致”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确渲染差异导致快照按项目名分目录及 CI 固定系统镜像或用容器生成基线的做法。
围绕“Playwright 中断言超时、动作超时、测试超时分别由什么配置控制,调大全局超时为何是反模式”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 expect timeout、action timeout、test timeout 的分层配置及用更稳的定位替代盲等。
围绕“Playwright 如何处理浏览器原生 confirm 对话框与文件下载这两类自动化盲区”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 page.on('dialog') 预注册接受与 download 事件等待保存的两套机制。
围绕“Playwright Test 的 fixture 机制相比 beforeEach 全局初始化有哪些可组合性优势”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 fixture 按需惰性创建、自动拆毁、可组合覆盖的优势及自定义 fixture 的写法思路。
围绕“诊断 Playwright 偶发失败(flaky)测试时 trace viewer 提供了哪些关键信息”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确用 trace 的动作快照、网络与控制台时间线定位竞态与等待不足。
围绕“Playwright 推荐的 getByRole、getByLabel、getByText 等定位器各自的适用边界是”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确按用户可见语义优先的定位器选择顺序及 getByTestId 兜底场景。
围绕“Playwright 用 HAR 文件回放网络请求的适用场景与局限是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 HAR 回放适合稳定只读接口、对动态数据与写操作失效的局限。
围绕“Playwright 定位 iframe 与 Shadow DOM 内元素分别需要什么特殊处理”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 frameLocator 进入 iframe、CSS/text 选择器默认穿透 open shadow root 的差异。
围绕“Playwright 的 Locator 相比 CSS 选择器字符串有哪些根本性优势”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 Locator 惰性求值、自动等待与可重试断言带来的稳定性提升。
围绕“用 Playwright 网络拦截模拟接口 500 与超时两种失败时实现方式有何不同”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 500 用 fulfill 状态码、超时用 abort 或延迟结合客户端超时配置的区别。
围绕“Playwright 页面对象模式在大型端到端测试套件中解决了什么问题,如何避免页对象膨胀”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确封装定位器与交互降低重复及按用户任务而非 DOM 结构拆分对象的原则。
围绕“Playwright 的并行 worker 与分片(sharding)机制如何影响测试设计与运行速度”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确文件级并行、测试间无共享状态的前提及 CI 多分片合并报告的做法。
围绕“Playwright 的 retries 重试机制应该如何配置才能既掩盖环境抖动又不掩盖真实缺陷”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确仅 CI 重试、结合 trace 与 testInfo.retry 诊断、禁止用重试掩盖等待缺失的原则。
围绕“Playwright 的 page.route 如何拦截并修改 API 响应,与 route.fulfill、rou”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 fulfill 完全造假响应、continue 放行、fetch 后改包再 fulfill 的三档选择。
围绕“Playwright 中每个测试新建 BrowserContext 的隔离机制是什么,代价与收益如何权衡”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 context 级 cookie/存储隔离保证独立性及共享 context 的风险。
围绕“Playwright 的 toHaveScreenshot 视觉回归测试如何工作,基线图片更新流程是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确像素对比与基线快照机制、--update-snapshots 更新流程及评审要求。
围绕“Playwright 视觉对比因抗锯齿和动画产生抖动时有哪些官方手段降低误报”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 maxDiffPixelRatio 阈值、animations:'disabled'、mask 遮盖动态区域三种手段。
围绕“Playwright 中如何断言某次点击确实触发了预期请求并校验其响应体”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 waitForResponse/waitForRequest 与 click 的 Promise.all 写法避免漏抓。
围绕“Playwright 中 page.waitForSelector 与 expect(locator).toBeVi”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确前者单次等待状态、后者基于轮询的重试断言及推荐用 web-first assertions 的理由。
围绕“用 Testing Library 断言一个元素从出现到消失的完整流程应该怎么写”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确出现用 findBy、消失用 waitForElementToBeRemoved 的组合及常见误用。
围绕“jest-dom 为 Testing Library 提供了哪些 DOM 断言,为什么不用 expect 直接断言属”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 jest-dom 语义化匹配器覆盖可见性、禁用态、属性等的价值。
围绕“为什么 React Testing Library 通常不需要手动调用 cleanup 和 act”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确测试框架 afterEach 自动清理与 render/fireEvent 内部已包裹 act 的机制。
围绕“Testing Library 测试中定位查询失败有哪些官方调试手段”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 screen.debug 输出 DOM、query 失败信息的建议查询提示、Testing Playground 辅助选查询。
围绕“在 Vitest 中用 fake timers 测试防抖或定时 UI 时与 Testing Library 异步查询”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确假时钟与 waitFor 内部定时器冲突及 advanceTimersByTime、shouldAdvanceTime 的处理。
围绕“用 React Testing Library 如何模拟表单输入并断言受控组件的值与校验提示”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 userEvent.type/clear 触发受控 onChange 及校验文案的异步断言。
围绕“Testing Library 查询默认为何查不到 display:none 的元素,如何用 hidden 选项改变”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确默认按可访问性过滤隐藏元素及 byRole 的 hidden:true 例外用法。
围绕“Testing Library 中 getAllBy 返回数组后如何对列表内容做稳定断言”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确用 getAllByRole 结合文本内容断言数量与条目、避免依赖 DOM 顺序以外的脆弱选择。
围绕“Testing Library 查询方法的优先级顺序是什么,为什么 getByRole 应优先于 getByTest”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确按可访问性贴近用户程度的优先级排序理由。
围绕“Testing Library 的 getByRole 如何通过可访问名称区分同名按钮,name 选项依据什么计算”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确可访问名称由 aria-label、关联 label、文本内容按规范计算并可用 name 过滤。
围绕“Testing Library 中为什么推荐用 screen 查询而不是解构 render 的返回值”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 screen 避免 container 引用过期、减少 render 返回项扩散的理由。
围绕“Testing Library 文本匹配中字符串、正则、函数三种 matcher 的匹配行为差异与大小写处理”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确默认整串精确匹配、正则部分匹配、函数自定义谓词的差异及 exact 参数作用。