前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
首页程序员面试题库测试面试题
面试知识索引 · 分类、标签与搜索

测试面试题,40 道完整答案

测试面试题第 1 页,显示第 1–40 题,共找到 40 道完整解析,可继续按分类、标签与关键词缩小范围。

40筛选结果
52技术分类
178检索标签
1索引分页
按分类建立知识面,再用标签和搜索定位问题

每页只渲染 50 道题。分类与标签分页可抓取,自由搜索结果不会制造无限 SEO 页面。

快速定位

分类、标签与关键词搜索

清除全部筛选
题库检索
技术分类52 个
全部分类5000测试40AI Agent511浏览器301JavaScript285React281AI 开发262CSS240Node.js217TypeScript206Vue180前端工程化138
查看全部 52 个分类
React Native135操作系统135数据库134Docker95计算机网络94API 设计90Kubernetes90HTML89Redis89全栈开发88分布式系统88系统设计86HTTP85Next.js60Angular58Linux53Nuxt51PostgreSQL46可观测性46设计模式46小程序45身份与权限45无障碍44MongoDB43PWA43Web 安全43Git42前端测试42前端性能41WebAssembly40AI 工程37SvelteKit37Go35前端数据管理30React Router29AI 全栈28Svelte27算法12Java10数据结构5前端手写题3
测试 标签7 个
单元与集成测试40构建工具8异步编程3CI/CD2实时通信2并发编程1浏览器自动化1
当前页01 / 1

正在显示第 1–40 题

测试40
第 1 页

本页面试问题

按稳定语义路径排序

  1. 0001
    测试单元与集成测试

    设计属性测试的输入生成器时,如何让空值、极值、Unicode 等边界数据被充分采到?

    设计属性测试的输入生成器时,如何让空值、极值、Unicode 等边界数据被充分采到? 本文先给出可直接复述的结论,再用最小代码说明fast-check arbitrary 边界生成的工作方式、判断依据、项目边界和常见误区。

    核心关键词fast-check arbitrary 边界生成
    #单元与集成测试
  2. 0002
    测试单元与集成测试

    断言 mock「被调用过」和「以特定参数调用」的说服力差异在哪,为什么参数断言更防回归?

    断言 mock「被调用过」和「以特定参数调用」的说服力差异在哪,为什么参数断言更防回归? 本文先给出可直接复述的结论,再用最小代码说明toHaveBeenCalledWith 参数断言的工作方式、判断依据、项目边界和常见误区。

    核心关键词toHaveBeenCalledWith 参数断言
    #单元与集成测试
  3. 0003
    测试单元与集成测试

    自定义断言失败消息应该包含哪些信息才能让失败输出直接定位问题?

    自定义断言失败消息应该包含哪些信息才能让失败输出直接定位问题? 本文先给出可直接复述的结论,再用最小代码说明断言失败消息 可读性 设计的工作方式、判断依据、项目边界和常见误区。

    核心关键词断言失败消息 可读性 设计
    #单元与集成测试
  4. 0004
    测试单元与集成测试

    单元测试里断言失败和普通代码抛异常有什么区别,为什么不能用 try-catch 代替断言?

    单元测试里断言失败和普通代码抛异常有什么区别,为什么不能用 try-catch 代替断言? 本文先给出可直接复述的结论,再用最小代码说明断言失败 异常 单元测试的工作方式、判断依据、项目边界和常见误区。

    核心关键词断言失败 异常 单元测试
    #单元与集成测试
  5. 0005
    测试单元与集成测试

    expect.any、expect.objectContaining 这类非对称匹配器何时该用,滥用会掩盖什么回归?

    expect.any、expect.objectContaining 这类非对称匹配器何时该用,滥用会掩盖什么回归? 本文先给出可直接复述的结论,再用最小代码说明expect.objectContaining 非对称匹配器的工作方式、判断依据、项目边界和常见误区。

    核心关键词expect.objectContaining 非对称匹配器
    #单元与集成测试
  6. 0006
    测试单元与集成测试

    beforeEach 和 beforeAll 建立测试环境时该如何选择,什么情况下 beforeAll 会破坏隔离?

    beforeEach 和 beforeAll 建立测试环境时该如何选择,什么情况下 beforeAll 会破坏隔离? 本文先给出可直接复述的结论,再用最小代码说明beforeEach beforeAll 区别 测试隔离的工作方式、判断依据、项目边界和常见误区。

    核心关键词beforeEach beforeAll 区别 测试隔离
    #单元与集成测试
  7. 0007
    测试单元与集成测试

    为什么 afterEach 中清理比在被测代码里清理更可靠,清理遗漏会造成什么后果?

    为什么 afterEach 中清理比在被测代码里清理更可靠,清理遗漏会造成什么后果? 本文先给出可直接复述的结论,再用最小代码说明afterEach 清理 测试污染的工作方式、判断依据、项目边界和常见误区。

    核心关键词afterEach 清理 测试污染
    #单元与集成测试
  8. 0008
    测试单元与集成测试

    消费者驱动契约测试解决的是 mock 与真实服务之间什么具体的漂移问题?

    消费者驱动契约测试解决的是 mock 与真实服务之间什么具体的漂移问题? 本文先给出可直接复述的结论,再用最小代码说明消费者驱动契约测试 mock 漂移的工作方式、判断依据、项目边界和常见误区。

    核心关键词消费者驱动契约测试 mock 漂移
    #单元与集成测试
  9. 0009
    测试单元与集成测试

    契约测试能否替代跨服务的集成测试,两者各自覆盖不了的失败类型是什么?

    契约测试能否替代跨服务的集成测试,两者各自覆盖不了的失败类型是什么? 本文先给出可直接复述的结论,再用最小代码说明契约测试 集成测试 区别的工作方式、判断依据、项目边界和常见误区。

    核心关键词契约测试 集成测试 区别
    #单元与集成测试
  10. 0010
    测试单元与集成测试

    契约测试中生产者端和消费者端各自验证什么,为什么只在一端验证不够?

    契约测试中生产者端和消费者端各自验证什么,为什么只在一端验证不够? 本文先给出可直接复述的结论,再用最小代码说明契约测试 生产者 消费者 双向验证的工作方式、判断依据、项目边界和常见误区。

    核心关键词契约测试 生产者 消费者 双向验证
    #单元与集成测试
  11. 0011
    测试单元与集成测试

    测试一个防抖输入框时用 fake timer 应验证哪几个时间点(未到间隔、恰好到间隔、连续触发)?

    测试一个防抖输入框时用 fake timer 应验证哪几个时间点(未到间隔、恰好到间隔、连续触发)? 本文先给出可直接复述的结论,再用最小代码说明防抖 测试 fake timer的工作方式、判断依据、项目边界和常见误区。

    核心关键词防抖 测试 fake timer
    #单元与集成测试
  12. 0012
    测试单元与集成测试

    为什么测试数据要用固定种子或显式构造而不是 Math.random,随机数据带来的不可重复失败如何诊断?

    为什么测试数据要用固定种子或显式构造而不是 Math.random,随机数据带来的不可重复失败如何诊断? 本文先给出可直接复述的结论,再用最小代码说明测试数据 确定性 随机种子的工作方式、判断依据、项目边界和常见误区。

    核心关键词测试数据 确定性 随机种子
    #单元与集成测试#CI/CD
  13. 0013
    测试单元与集成测试

    Vitest 中 expect.assertions() 和 expect.hasAssertions() 在异步测试里分别防止什么漏检?

    Vitest 中 expect.assertions() 和 expect.hasAssertions() 在异步测试里分别防止什么漏检? 本文先给出可直接复述的结论,再用最小代码说明Vitest expect.assertions 异步断言漏检的工作方式、判断依据、项目边界和常见误区。

    核心关键词Vitest expect.assertions 异步断言漏检
    #单元与集成测试#异步编程#实时通信
  14. 0014
    测试单元与集成测试

    fake timer 开启后为什么有些测试会假死(例如等待真实请求超时),如何避免?

    fake timer 开启后为什么有些测试会假死(例如等待真实请求超时),如何避免? 本文先给出可直接复述的结论,再用最小代码说明fake timer 卡死 真实请求的工作方式、判断依据、项目边界和常见误区。

    核心关键词fake timer 卡死 真实请求
    #单元与集成测试
  15. 0015
    测试单元与集成测试

    fake timer 下异步代码卡在 await 上时,runAllTimersAsync 与 advanceTimersByTimeAsync 分别解决什么问题?

    fake timer 下异步代码卡在 await 上时,runAllTimersAsync 与 advanceTimersByTimeAsync 分别解决什么问题? 本文先给出可直接复述的结论,再用最小代码说明runAllTimersAsync 假定时器 微任务的工作方式、判断依据、项目边界和常见误区。

    核心关键词runAllTimersAsync 假定时器 微任务
    #单元与集成测试#异步编程
  16. 0016
    测试单元与集成测试

    Vitest 的 vi.useFakeTimers() 如何跳过 setTimeout 等待,为什么必须配合 advanceTimersByTime 而非直接 await?

    Vitest 的 vi.useFakeTimers() 如何跳过 setTimeout 等待,为什么必须配合 advanceTimersByTime 而非直接 await? 本文先给出可直接复述的结论,再用最小代码说明Vitest fake timers advanceTimersByTime的工作方式、判断依据、项目边界和常见误区。

    核心关键词Vitest fake timers advanceTimersByTime
    #单元与集成测试#异步编程#构建工具
  17. 0017
    测试单元与集成测试

    vi.setSystemTime() 固定当前时间对测试 Date.now 依赖的代码(如过期判断)有什么价值,与时区问题的关系是什么?

    vi.setSystemTime() 固定当前时间对测试 Date.now 依赖的代码(如过期判断)有什么价值,与时区问题的关系是什么? 本文先给出可直接复述的结论,再用最小代码说明vi.setSystemTime 固定时间 Date.now的工作方式、判断依据、项目边界和常见误区。

    核心关键词vi.setSystemTime 固定时间 Date.now
    #单元与集成测试
  18. 0018
    测试单元与集成测试

    数据库类夹具选择「每用例全新数据」还是「共享只读基线数据」,各自适合什么测试目标?

    数据库类夹具选择「每用例全新数据」还是「共享只读基线数据」,各自适合什么测试目标? 本文先给出可直接复述的结论,再用最小代码说明测试夹具 共享数据 全新数据的工作方式、判断依据、项目边界和常见误区。

    核心关键词测试夹具 共享数据 全新数据
    #单元与集成测试
  19. 0019
    测试单元与集成测试

    测试夹具(fixture)应该把环境搭建放在哪一层(每用例、每文件、全局),判断依据是什么?

    测试夹具(fixture)应该把环境搭建放在哪一层(每用例、每文件、全局),判断依据是什么? 本文先给出可直接复述的结论,再用最小代码说明测试 fixture 分层 setup teardown的工作方式、判断依据、项目边界和常见误区。

    核心关键词测试 fixture 分层 setup teardown
    #单元与集成测试
  20. 0020
    测试单元与集成测试

    Playwright 的 web-first 断言(如 toBeVisible)为什么会自动重试,这与普通 expect 断言的竞态差异是什么?

    Playwright 的 web-first 断言(如 toBeVisible)为什么会自动重试,这与普通 expect 断言的竞态差异是什么? 本文先给出可直接复述的结论,再用最小代码说明Playwright web-first 断言 自动重试的工作方式、判断依据、项目边界和常见误区。

    核心关键词Playwright web-first 断言 自动重试
    #单元与集成测试#浏览器自动化
  21. 0021
    测试单元与集成测试

    对 CI 上的不稳定(flaky)测试,重试机制、隔离与修复三种处理策略该如何排优先级?

    对 CI 上的不稳定(flaky)测试,重试机制、隔离与修复三种处理策略该如何排优先级? 本文先给出可直接复述的结论,再用最小代码说明flaky test 重试 隔离 修复的工作方式、判断依据、项目边界和常见误区。

    核心关键词flaky test 重试 隔离 修复
    #单元与集成测试#CI/CD
  22. 0022
    测试单元与集成测试

    需要模拟依赖第一次失败、第二次成功来测试重试逻辑时,mock 应如何表达调用序列并断言调用次数?

    需要模拟依赖第一次失败、第二次成功来测试重试逻辑时,mock 应如何表达调用序列并断言调用次数? 本文先给出可直接复述的结论,再用最小代码说明mock 模拟调用序列 测试重试逻辑的工作方式、判断依据、项目边界和常见误区。

    核心关键词mock 模拟调用序列 测试重试逻辑
    #单元与集成测试
  23. 0023
    测试单元与集成测试

    mock、stub、spy 三者在验证行为上的分工差异是什么,什么场景必须验证交互而非状态?

    mock、stub、spy 三者在验证行为上的分工差异是什么,什么场景必须验证交互而非状态? 本文先给出可直接复述的结论,再用最小代码说明mock stub spy 区别的工作方式、判断依据、项目边界和常见误区。

    核心关键词mock stub spy 区别
    #单元与集成测试
  24. 0024
    测试单元与集成测试

    过度 mock 为什么会让测试在重构后大面积误报,判断该不该 mock 一条依赖的标准是什么?

    过度 mock 为什么会让测试在重构后大面积误报,判断该不该 mock 一条依赖的标准是什么? 本文先给出可直接复述的结论,再用最小代码说明过度 mock 脆弱测试 重构的工作方式、判断依据、项目边界和常见误区。

    核心关键词过度 mock 脆弱测试 重构
    #单元与集成测试
  25. 0025
    测试单元与集成测试

    Vitest 并行执行测试文件时靠什么隔离模块状态,什么全局副作用仍会泄漏?

    Vitest 并行执行测试文件时靠什么隔离模块状态,什么全局副作用仍会泄漏? 本文先给出可直接复述的结论,再用最小代码说明Vitest 并行 隔离 worker 模块的工作方式、判断依据、项目边界和常见误区。

    核心关键词Vitest 并行 隔离 worker 模块
    #单元与集成测试#构建工具#并发编程
  26. 0026
    测试单元与集成测试

    如何用 vi.importActual 只替换模块的一个导出而保留其余真实实现,这种做法的风险是什么?

    如何用 vi.importActual 只替换模块的一个导出而保留其余真实实现,这种做法的风险是什么? 本文先给出可直接复述的结论,再用最小代码说明Vitest vi.importActual 部分 mock的工作方式、判断依据、项目边界和常见误区。

    核心关键词Vitest vi.importActual 部分 mock
    #单元与集成测试#构建工具
  27. 0027
    测试单元与集成测试

    属性测试与示例测试的根本差异是什么,为什么「反序两次等于原数组」比固定用例更有覆盖力?

    属性测试与示例测试的根本差异是什么,为什么「反序两次等于原数组」比固定用例更有覆盖力? 本文先给出可直接复述的结论,再用最小代码说明属性测试 property based testing 区别的工作方式、判断依据、项目边界和常见误区。

    核心关键词属性测试 property based testing 区别
    #单元与集成测试
  28. 0028
    测试单元与集成测试

    为排序函数写属性测试时,除了「结果有序」还应断言哪些不变量(长度守恒、多重集守恒)?

    为排序函数写属性测试时,除了「结果有序」还应断言哪些不变量(长度守恒、多重集守恒)? 本文先给出可直接复述的结论,再用最小代码说明排序函数 属性测试 不变量的工作方式、判断依据、项目边界和常见误区。

    核心关键词排序函数 属性测试 不变量
    #单元与集成测试
  29. 0029
    测试单元与集成测试

    单元测试为什么不应该发真实网络请求,违反后除了慢还有什么正确性风险?

    单元测试为什么不应该发真实网络请求,违反后除了慢还有什么正确性风险? 本文先给出可直接复述的结论,再用最小代码说明单元测试 网络请求 隔离的工作方式、判断依据、项目边界和常见误区。

    核心关键词单元测试 网络请求 隔离
    #单元与集成测试
  30. 0030
    测试单元与集成测试

    属性测试发现失败用例后的 shrink(收缩)过程在做什么,为什么它对定位根因至关重要?

    属性测试发现失败用例后的 shrink(收缩)过程在做什么,为什么它对定位根因至关重要? 本文先给出可直接复述的结论,再用最小代码说明属性测试 shrinking 最小反例的工作方式、判断依据、项目边界和常见误区。

    核心关键词属性测试 shrinking 最小反例
    #单元与集成测试
  31. 0031
    测试单元与集成测试

    什么时候该用软断言(soft assertions)让一个用例报告多个失败,代价是什么?

    什么时候该用软断言(soft assertions)让一个用例报告多个失败,代价是什么? 本文先给出可直接复述的结论,再用最小代码说明软断言 soft assertions 使用场景的工作方式、判断依据、项目边界和常见误区。

    核心关键词软断言 soft assertions 使用场景
    #单元与集成测试#实时通信
  32. 0032
    测试单元与集成测试

    vi.spyOn 监视对象方法后为什么必须在测试间恢复,不恢复会引发什么跨用例污染?

    vi.spyOn 监视对象方法后为什么必须在测试间恢复,不恢复会引发什么跨用例污染? 本文先给出可直接复述的结论,再用最小代码说明Vitest spyOn restoreMocks的工作方式、判断依据、项目边界和常见误区。

    核心关键词Vitest spyOn restoreMocks
    #单元与集成测试#构建工具
  33. 0033
    测试单元与集成测试

    为什么单元测试之间必须相互独立,共享可变状态会导致哪些难以诊断的失败模式?

    为什么单元测试之间必须相互独立,共享可变状态会导致哪些难以诊断的失败模式? 本文先给出可直接复述的结论,再用最小代码说明单元测试 隔离性 共享状态的工作方式、判断依据、项目边界和常见误区。

    核心关键词单元测试 隔离性 共享状态
    #单元与集成测试
  34. 0034
    测试单元与集成测试

    发现一个测试单独运行通过、整套运行时失败,应按什么思路诊断顺序依赖?

    发现一个测试单独运行通过、整套运行时失败,应按什么思路诊断顺序依赖? 本文先给出可直接复述的结论,再用最小代码说明测试顺序依赖 单独运行通过 排查的工作方式、判断依据、项目边界和常见误区。

    核心关键词测试顺序依赖 单独运行通过 排查
    #单元与集成测试
  35. 0035
    测试单元与集成测试

    除了时间与时区,还有哪些环境因素(语言环境、区域格式、文件系统大小写)会让同一测试在不同机器结果不同?

    除了时间与时区,还有哪些环境因素(语言环境、区域格式、文件系统大小写)会让同一测试在不同机器结果不同? 本文先给出可直接复述的结论,再用最小代码说明测试可重复性 时区 locale 环境差异的工作方式、判断依据、项目边界和常见误区。

    核心关键词测试可重复性 时区 locale 环境差异
    #单元与集成测试
  36. 0036
    测试单元与集成测试

    「测行为不测实现」原则下,哪些断言(调用内部私有方法、检查内部状态)属于脆弱的实现耦合?

    「测行为不测实现」原则下,哪些断言(调用内部私有方法、检查内部状态)属于脆弱的实现耦合? 本文先给出可直接复述的结论,再用最小代码说明测试行为 不测实现 重构的工作方式、判断依据、项目边界和常见误区。

    核心关键词测试行为 不测实现 重构
    #单元与集成测试
  37. 0037
    测试单元与集成测试

    Testing Library 的 waitFor 与 findBy 查询都带等待,两者适用场景与超时失败信息有何不同?

    Testing Library 的 waitFor 与 findBy 查询都带等待,两者适用场景与超时失败信息有何不同? 本文先给出可直接复述的结论,再用最小代码说明Testing Library waitFor 与 findBy 区别的工作方式、判断依据、项目边界和常见误区。

    核心关键词Testing Library waitFor 与 findBy 区别
    #单元与集成测试
  38. 0038
    测试单元与集成测试

    Vitest 的 toBe、toEqual、toStrictEqual 在比较对象和类实例时行为差异是什么?

    Vitest 的 toBe、toEqual、toStrictEqual 在比较对象和类实例时行为差异是什么? 本文先给出可直接复述的结论,再用最小代码说明Vitest toBe toEqual toStrictEqual 区别的工作方式、判断依据、项目边界和常见误区。

    核心关键词Vitest toBe toEqual toStrictEqual 区别
    #单元与集成测试#构建工具
  39. 0039
    测试单元与集成测试

    Vitest 中 vi.fn() 配合 mockReturnValue 与 mockImplementation 该如何选择,链式 mockResolvedValueOnce 解决什么问题?

    Vitest 中 vi.fn() 配合 mockReturnValue 与 mockImplementation 该如何选择,链式 mockResolvedValueOnce 解决什么问题? 本文先给出可直接复述的结论,再用最小代码说明Vitest vi.fn mockReturnValue mockImplementation的工作方式、判断依据、项目边界和常见误区。

    核心关键词Vitest vi.fn mockReturnValue mockImplementation
    #单元与集成测试#构建工具
  40. 0040
    测试单元与集成测试

    Vitest 的 vi.mock() 为什么会被提升到文件顶部,这一提升对工厂函数里引用外部变量有什么限制?

    Vitest 的 vi.mock() 为什么会被提升到文件顶部,这一提升对工厂函数里引用外部变量有什么限制? 本文先给出可直接复述的结论,再用最小代码说明Vitest vi.mock 提升 hoisting的工作方式、判断依据、项目边界和常见误区。

    核心关键词Vitest vi.mock 提升 hoisting
    #单元与集成测试#构建工具
上一页
1
下一页
前端进阶之旅本地 Markdown 维护 · 服务端分页 · 完整内容对用户与搜索引擎一致