ASP.NET Core 试题 43:集成测试
0841 在 WebApplicationFactory 的框架契约中,哪项是应直接依赖的主规则?
难度: 基础
- A. WebApplicationFactory 只 new 控制器,不会执行中间件
- B. 入口点可见性与顶级语句应用常需 partial Program,测试配置不得误连生产资源
- C. WebApplicationFactory 启动测试宿主并提供 HttpClient,适合验证真实路由、管道和序列化
- D. 观察到“测试未发现认证中间件顺序错误”即可把一次现象当成完整框架契约。
查看答案与解析
正确答案C
正确答案直接描述 WebApplicationFactory 的主规则:WebApplicationFactory 启动测试宿主并提供 HttpClient,适合验证真实路由、管道和序列化。选项“入口点可见性与顶级语句应用常需 partial Program,测试配置不得误连生产资源”是使用规则时要验证的边界,不是规则本身;“WebApplicationFactory 只 new 控制器,不会执行中间件”则是会导致错误实现的典型误区。场景只能提供线索,不能替代框架契约。
0842 测试未发现认证中间件顺序错误。排查时哪项动作最合理?
难度: 进阶
- A. 先验证“入口点可见性与顶级语句应用常需 partial Program,测试配置不得误连生产资源”,再依据“WebApplicationFactory 启动测试宿主并提供 HttpClient,适合验证真实路由、管道和序列化”判断实现是否符合契约。
- B. 直接按“WebApplicationFactory 只 new 控制器,不会执行中间件”定性,不再检查配置、身份或运行时证据。
- C. 只增加重试次数或机器资源,暂不核对“入口点可见性与顶级语句应用常需 partial Program,测试配置不得误连生产资源”。
- D. 以一次成功请求作为结论,不再确认“WebApplicationFactory 启动测试宿主并提供 HttpClient,适合验证真实路由、管道和序列化”是否成立。
查看答案与解析
正确答案A
场景“测试未发现认证中间件顺序错误”指向 WebApplicationFactory,但症状本身不能证明根因。正确排查应先确认边界“入口点可见性与顶级语句应用常需 partial Program,测试配置不得误连生产资源”,再用主规则“WebApplicationFactory 启动测试宿主并提供 HttpClient,适合验证真实路由、管道和序列化”解释证据。直接采用误区“WebApplicationFactory 只 new 控制器,不会执行中间件”、只扩容或依赖一次成功都会掩盖真实配置和请求路径。
0843 关于 WebApplicationFactory,以下哪项说法不成立?
难度: 实战
- A. WebApplicationFactory 启动测试宿主并提供 HttpClient,适合验证真实路由、管道和序列化
- B. 入口点可见性与顶级语句应用常需 partial Program,测试配置不得误连生产资源
- C. 出现“测试未发现认证中间件顺序错误”时,应收集证据并同时核对主规则与适用边界。
- D. WebApplicationFactory 只 new 控制器,不会执行中间件
查看答案与解析
正确答案D
题目要求选出不成立的说法,答案“WebApplicationFactory 只 new 控制器,不会执行中间件”正是 WebApplicationFactory 的典型误区。其余三项分别给出了主规则“WebApplicationFactory 启动测试宿主并提供 HttpClient,适合验证真实路由、管道和序列化”、适用边界“入口点可见性与顶级语句应用常需 partial Program,测试配置不得误连生产资源”以及面向场景的正确取证方式,不能因为题干使用否定问法而反选这些有效结论。
0844 针对“测试未发现认证中间件顺序错误”进行上线评审,哪项决策依据最完整?
难度: 实战
- A. 按“WebApplicationFactory 只 new 控制器,不会执行中间件”修改实现,并把一次请求成功作为验收结果。
- B. 按“WebApplicationFactory 启动测试宿主并提供 HttpClient,适合验证真实路由、管道和序列化”修正实现,并用测试或遥测验证“入口点可见性与顶级语句应用常需 partial Program,测试配置不得误连生产资源”。
- C. 按“WebApplicationFactory 启动测试宿主并提供 HttpClient,适合验证真实路由、管道和序列化”修改代码后直接上线,不验证“入口点可见性与顶级语句应用常需 partial Program,测试配置不得误连生产资源”。
- D. 只验证“入口点可见性与顶级语句应用常需 partial Program,测试配置不得误连生产资源”,但实现仍继续依赖“WebApplicationFactory 只 new 控制器,不会执行中间件”。
查看答案与解析
正确答案B
完整决策同时覆盖规则与验证:WebApplicationFactory 启动测试宿主并提供 HttpClient,适合验证真实路由、管道和序列化;并确认 入口点可见性与顶级语句应用常需 partial Program,测试配置不得误连生产资源。继续接受“WebApplicationFactory 只 new 控制器,不会执行中间件”会让评审依据失真;只改代码不验证边界,或只检查边界却沿用误区,都不足以判断“测试未发现认证中间件顺序错误”这一生产场景能否安全上线。
0845 在 替换服务 的框架契约中,哪项是应直接依赖的主规则?
难度: 基础
- A. 只要服务接口相同,任意返回值都能证明集成行为正确
- B. 替换应针对边界且与生产契约一致,过度 Mock 会让管道测试失真
- C. 观察到“假服务未模拟并发失败导致生产漏洞”即可把一次现象当成完整框架契约。
- D. WithWebHostBuilder 或 ConfigureTestServices 可替换外部服务、认证和数据库依赖
查看答案与解析
正确答案D
正确答案直接描述 替换服务 的主规则:WithWebHostBuilder 或 ConfigureTestServices 可替换外部服务、认证和数据库依赖。选项“替换应针对边界且与生产契约一致,过度 Mock 会让管道测试失真”是使用规则时要验证的边界,不是规则本身;“只要服务接口相同,任意返回值都能证明集成行为正确”则是会导致错误实现的典型误区。场景只能提供线索,不能替代框架契约。
0846 假服务未模拟并发失败导致生产漏洞。排查时哪项动作最合理?
难度: 进阶
- A. 先验证“替换应针对边界且与生产契约一致,过度 Mock 会让管道测试失真”,再依据“WithWebHostBuilder 或 ConfigureTestServices 可替换外部服务、认证和数据库依赖”判断实现是否符合契约。
- B. 直接按“只要服务接口相同,任意返回值都能证明集成行为正确”定性,不再检查配置、身份或运行时证据。
- C. 只增加重试次数或机器资源,暂不核对“替换应针对边界且与生产契约一致,过度 Mock 会让管道测试失真”。
- D. 以一次成功请求作为结论,不再确认“WithWebHostBuilder 或 ConfigureTestServices 可替换外部服务、认证和数据库依赖”是否成立。
查看答案与解析
正确答案A
场景“假服务未模拟并发失败导致生产漏洞”指向 替换服务,但症状本身不能证明根因。正确排查应先确认边界“替换应针对边界且与生产契约一致,过度 Mock 会让管道测试失真”,再用主规则“WithWebHostBuilder 或 ConfigureTestServices 可替换外部服务、认证和数据库依赖”解释证据。直接采用误区“只要服务接口相同,任意返回值都能证明集成行为正确”、只扩容或依赖一次成功都会掩盖真实配置和请求路径。
0847 关于 替换服务,以下哪项说法不成立?
难度: 实战
- A. WithWebHostBuilder 或 ConfigureTestServices 可替换外部服务、认证和数据库依赖
- B. 只要服务接口相同,任意返回值都能证明集成行为正确
- C. 替换应针对边界且与生产契约一致,过度 Mock 会让管道测试失真
- D. 出现“假服务未模拟并发失败导致生产漏洞”时,应收集证据并同时核对主规则与适用边界。
查看答案与解析
正确答案B
题目要求选出不成立的说法,答案“只要服务接口相同,任意返回值都能证明集成行为正确”正是 替换服务 的典型误区。其余三项分别给出了主规则“WithWebHostBuilder 或 ConfigureTestServices 可替换外部服务、认证和数据库依赖”、适用边界“替换应针对边界且与生产契约一致,过度 Mock 会让管道测试失真”以及面向场景的正确取证方式,不能因为题干使用否定问法而反选这些有效结论。
0848 针对“假服务未模拟并发失败导致生产漏洞”进行上线评审,哪项决策依据最完整?
难度: 实战
- A. 按“只要服务接口相同,任意返回值都能证明集成行为正确”修改实现,并把一次请求成功作为验收结果。
- B. 按“WithWebHostBuilder 或 ConfigureTestServices 可替换外部服务、认证和数据库依赖”修改代码后直接上线,不验证“替换应针对边界且与生产契约一致,过度 Mock 会让管道测试失真”。
- C. 按“WithWebHostBuilder 或 ConfigureTestServices 可替换外部服务、认证和数据库依赖”修正实现,并用测试或遥测验证“替换应针对边界且与生产契约一致,过度 Mock 会让管道测试失真”。
- D. 只验证“替换应针对边界且与生产契约一致,过度 Mock 会让管道测试失真”,但实现仍继续依赖“只要服务接口相同,任意返回值都能证明集成行为正确”。
查看答案与解析
正确答案C
完整决策同时覆盖规则与验证:WithWebHostBuilder 或 ConfigureTestServices 可替换外部服务、认证和数据库依赖;并确认 替换应针对边界且与生产契约一致,过度 Mock 会让管道测试失真。继续接受“只要服务接口相同,任意返回值都能证明集成行为正确”会让评审依据失真;只改代码不验证边界,或只检查边界却沿用误区,都不足以判断“假服务未模拟并发失败导致生产漏洞”这一生产场景能否安全上线。
0849 在 测试数据库隔离 的框架契约中,哪项是应直接依赖的主规则?
难度: 基础
- A. 所有测试共享一个可变数据库并并行运行会天然保持隔离
- B. 事务回滚不一定覆盖多连接、后台任务和非数据库副作用
- C. 观察到“测试随机受其他用例写入影响”即可把一次现象当成完整框架契约。
- D. 每个测试应拥有可预测数据并避免并行污染,可用事务、独立数据库或容器策略
查看答案与解析
正确答案D
正确答案直接描述 测试数据库隔离 的主规则:每个测试应拥有可预测数据并避免并行污染,可用事务、独立数据库或容器策略。选项“事务回滚不一定覆盖多连接、后台任务和非数据库副作用”是使用规则时要验证的边界,不是规则本身;“所有测试共享一个可变数据库并并行运行会天然保持隔离”则是会导致错误实现的典型误区。场景只能提供线索,不能替代框架契约。
0850 测试随机受其他用例写入影响。排查时哪项动作最合理?
难度: 进阶
- A. 直接按“所有测试共享一个可变数据库并并行运行会天然保持隔离”定性,不再检查配置、身份或运行时证据。
- B. 只增加重试次数或机器资源,暂不核对“事务回滚不一定覆盖多连接、后台任务和非数据库副作用”。
- C. 先验证“事务回滚不一定覆盖多连接、后台任务和非数据库副作用”,再依据“每个测试应拥有可预测数据并避免并行污染,可用事务、独立数据库或容器策略”判断实现是否符合契约。
- D. 以一次成功请求作为结论,不再确认“每个测试应拥有可预测数据并避免并行污染,可用事务、独立数据库或容器策略”是否成立。
查看答案与解析
正确答案C
场景“测试随机受其他用例写入影响”指向 测试数据库隔离,但症状本身不能证明根因。正确排查应先确认边界“事务回滚不一定覆盖多连接、后台任务和非数据库副作用”,再用主规则“每个测试应拥有可预测数据并避免并行污染,可用事务、独立数据库或容器策略”解释证据。直接采用误区“所有测试共享一个可变数据库并并行运行会天然保持隔离”、只扩容或依赖一次成功都会掩盖真实配置和请求路径。
0851 关于 测试数据库隔离,以下哪项说法不成立?
难度: 实战
- A. 每个测试应拥有可预测数据并避免并行污染,可用事务、独立数据库或容器策略
- B. 所有测试共享一个可变数据库并并行运行会天然保持隔离
- C. 事务回滚不一定覆盖多连接、后台任务和非数据库副作用
- D. 出现“测试随机受其他用例写入影响”时,应收集证据并同时核对主规则与适用边界。
查看答案与解析
正确答案B
题目要求选出不成立的说法,答案“所有测试共享一个可变数据库并并行运行会天然保持隔离”正是 测试数据库隔离 的典型误区。其余三项分别给出了主规则“每个测试应拥有可预测数据并避免并行污染,可用事务、独立数据库或容器策略”、适用边界“事务回滚不一定覆盖多连接、后台任务和非数据库副作用”以及面向场景的正确取证方式,不能因为题干使用否定问法而反选这些有效结论。
0852 针对“测试随机受其他用例写入影响”进行上线评审,哪项决策依据最完整?
难度: 实战
- A. 按“每个测试应拥有可预测数据并避免并行污染,可用事务、独立数据库或容器策略”修正实现,并用测试或遥测验证“事务回滚不一定覆盖多连接、后台任务和非数据库副作用”。
- B. 按“所有测试共享一个可变数据库并并行运行会天然保持隔离”修改实现,并把一次请求成功作为验收结果。
- C. 按“每个测试应拥有可预测数据并避免并行污染,可用事务、独立数据库或容器策略”修改代码后直接上线,不验证“事务回滚不一定覆盖多连接、后台任务和非数据库副作用”。
- D. 只验证“事务回滚不一定覆盖多连接、后台任务和非数据库副作用”,但实现仍继续依赖“所有测试共享一个可变数据库并并行运行会天然保持隔离”。
查看答案与解析
正确答案A
完整决策同时覆盖规则与验证:每个测试应拥有可预测数据并避免并行污染,可用事务、独立数据库或容器策略;并确认 事务回滚不一定覆盖多连接、后台任务和非数据库副作用。继续接受“所有测试共享一个可变数据库并并行运行会天然保持隔离”会让评审依据失真;只改代码不验证边界,或只检查边界却沿用误区,都不足以判断“测试随机受其他用例写入影响”这一生产场景能否安全上线。
0853 在 认证测试 的框架契约中,哪项是应直接依赖的主规则?
难度: 基础
- A. 测试可注册专用 AuthenticationHandler 构造确定身份和 Claims
- B. 把 FallbackPolicy 删除后测试通过即可证明生产授权正确
- C. 仍应分别覆盖未认证、无权和有权路径,不能全局绕过 Authorization
- D. 观察到“生产新增端点忘记授权但测试没发现”即可把一次现象当成完整框架契约。
查看答案与解析
正确答案A
正确答案直接描述 认证测试 的主规则:测试可注册专用 AuthenticationHandler 构造确定身份和 Claims。选项“仍应分别覆盖未认证、无权和有权路径,不能全局绕过 Authorization”是使用规则时要验证的边界,不是规则本身;“把 FallbackPolicy 删除后测试通过即可证明生产授权正确”则是会导致错误实现的典型误区。场景只能提供线索,不能替代框架契约。
0854 生产新增端点忘记授权但测试没发现。排查时哪项动作最合理?
难度: 进阶
- A. 直接按“把 FallbackPolicy 删除后测试通过即可证明生产授权正确”定性,不再检查配置、身份或运行时证据。
- B. 只增加重试次数或机器资源,暂不核对“仍应分别覆盖未认证、无权和有权路径,不能全局绕过 Authorization”。
- C. 以一次成功请求作为结论,不再确认“测试可注册专用 AuthenticationHandler 构造确定身份和 Claims”是否成立。
- D. 先验证“仍应分别覆盖未认证、无权和有权路径,不能全局绕过 Authorization”,再依据“测试可注册专用 AuthenticationHandler 构造确定身份和 Claims”判断实现是否符合契约。
查看答案与解析
正确答案D
场景“生产新增端点忘记授权但测试没发现”指向 认证测试,但症状本身不能证明根因。正确排查应先确认边界“仍应分别覆盖未认证、无权和有权路径,不能全局绕过 Authorization”,再用主规则“测试可注册专用 AuthenticationHandler 构造确定身份和 Claims”解释证据。直接采用误区“把 FallbackPolicy 删除后测试通过即可证明生产授权正确”、只扩容或依赖一次成功都会掩盖真实配置和请求路径。
0855 关于 认证测试,以下哪项说法不成立?
难度: 实战
- A. 测试可注册专用 AuthenticationHandler 构造确定身份和 Claims
- B. 把 FallbackPolicy 删除后测试通过即可证明生产授权正确
- C. 仍应分别覆盖未认证、无权和有权路径,不能全局绕过 Authorization
- D. 出现“生产新增端点忘记授权但测试没发现”时,应收集证据并同时核对主规则与适用边界。
查看答案与解析
正确答案B
题目要求选出不成立的说法,答案“把 FallbackPolicy 删除后测试通过即可证明生产授权正确”正是 认证测试 的典型误区。其余三项分别给出了主规则“测试可注册专用 AuthenticationHandler 构造确定身份和 Claims”、适用边界“仍应分别覆盖未认证、无权和有权路径,不能全局绕过 Authorization”以及面向场景的正确取证方式,不能因为题干使用否定问法而反选这些有效结论。
0856 针对“生产新增端点忘记授权但测试没发现”进行上线评审,哪项决策依据最完整?
难度: 实战
- A. 按“把 FallbackPolicy 删除后测试通过即可证明生产授权正确”修改实现,并把一次请求成功作为验收结果。
- B. 按“测试可注册专用 AuthenticationHandler 构造确定身份和 Claims”修改代码后直接上线,不验证“仍应分别覆盖未认证、无权和有权路径,不能全局绕过 Authorization”。
- C. 按“测试可注册专用 AuthenticationHandler 构造确定身份和 Claims”修正实现,并用测试或遥测验证“仍应分别覆盖未认证、无权和有权路径,不能全局绕过 Authorization”。
- D. 只验证“仍应分别覆盖未认证、无权和有权路径,不能全局绕过 Authorization”,但实现仍继续依赖“把 FallbackPolicy 删除后测试通过即可证明生产授权正确”。
查看答案与解析
正确答案C
完整决策同时覆盖规则与验证:测试可注册专用 AuthenticationHandler 构造确定身份和 Claims;并确认 仍应分别覆盖未认证、无权和有权路径,不能全局绕过 Authorization。继续接受“把 FallbackPolicy 删除后测试通过即可证明生产授权正确”会让评审依据失真;只改代码不验证边界,或只检查边界却沿用误区,都不足以判断“生产新增端点忘记授权但测试没发现”这一生产场景能否安全上线。
0857 在 响应断言 的框架契约中,哪项是应直接依赖的主规则?
难度: 基础
- A. HTTP 200 足以证明业务、副作用和契约全部正确
- B. 集成测试应断言状态码、媒体类型、关键头和响应模型,而非只检查正文包含文本
- C. 时间、ID 和排序等不稳定字段应使用语义断言,避免脆弱快照
- D. 观察到“接口返回错误对象但测试仍只断言成功状态”即可把一次现象当成完整框架契约。
查看答案与解析
正确答案B
正确答案直接描述 响应断言 的主规则:集成测试应断言状态码、媒体类型、关键头和响应模型,而非只检查正文包含文本。选项“时间、ID 和排序等不稳定字段应使用语义断言,避免脆弱快照”是使用规则时要验证的边界,不是规则本身;“HTTP 200 足以证明业务、副作用和契约全部正确”则是会导致错误实现的典型误区。场景只能提供线索,不能替代框架契约。
0858 接口返回错误对象但测试仍只断言成功状态。排查时哪项动作最合理?
难度: 进阶
- A. 直接按“HTTP 200 足以证明业务、副作用和契约全部正确”定性,不再检查配置、身份或运行时证据。
- B. 只增加重试次数或机器资源,暂不核对“时间、ID 和排序等不稳定字段应使用语义断言,避免脆弱快照”。
- C. 先验证“时间、ID 和排序等不稳定字段应使用语义断言,避免脆弱快照”,再依据“集成测试应断言状态码、媒体类型、关键头和响应模型,而非只检查正文包含文本”判断实现是否符合契约。
- D. 以一次成功请求作为结论,不再确认“集成测试应断言状态码、媒体类型、关键头和响应模型,而非只检查正文包含文本”是否成立。
查看答案与解析
正确答案C
场景“接口返回错误对象但测试仍只断言成功状态”指向 响应断言,但症状本身不能证明根因。正确排查应先确认边界“时间、ID 和排序等不稳定字段应使用语义断言,避免脆弱快照”,再用主规则“集成测试应断言状态码、媒体类型、关键头和响应模型,而非只检查正文包含文本”解释证据。直接采用误区“HTTP 200 足以证明业务、副作用和契约全部正确”、只扩容或依赖一次成功都会掩盖真实配置和请求路径。
0859 关于 响应断言,以下哪项说法不成立?
难度: 实战
- A. 集成测试应断言状态码、媒体类型、关键头和响应模型,而非只检查正文包含文本
- B. 时间、ID 和排序等不稳定字段应使用语义断言,避免脆弱快照
- C. 出现“接口返回错误对象但测试仍只断言成功状态”时,应收集证据并同时核对主规则与适用边界。
- D. HTTP 200 足以证明业务、副作用和契约全部正确
查看答案与解析
正确答案D
题目要求选出不成立的说法,答案“HTTP 200 足以证明业务、副作用和契约全部正确”正是 响应断言 的典型误区。其余三项分别给出了主规则“集成测试应断言状态码、媒体类型、关键头和响应模型,而非只检查正文包含文本”、适用边界“时间、ID 和排序等不稳定字段应使用语义断言,避免脆弱快照”以及面向场景的正确取证方式,不能因为题干使用否定问法而反选这些有效结论。
0860 针对“接口返回错误对象但测试仍只断言成功状态”进行上线评审,哪项决策依据最完整?
难度: 实战
- A. 按“集成测试应断言状态码、媒体类型、关键头和响应模型,而非只检查正文包含文本”修正实现,并用测试或遥测验证“时间、ID 和排序等不稳定字段应使用语义断言,避免脆弱快照”。
- B. 按“HTTP 200 足以证明业务、副作用和契约全部正确”修改实现,并把一次请求成功作为验收结果。
- C. 按“集成测试应断言状态码、媒体类型、关键头和响应模型,而非只检查正文包含文本”修改代码后直接上线,不验证“时间、ID 和排序等不稳定字段应使用语义断言,避免脆弱快照”。
- D. 只验证“时间、ID 和排序等不稳定字段应使用语义断言,避免脆弱快照”,但实现仍继续依赖“HTTP 200 足以证明业务、副作用和契约全部正确”。
查看答案与解析
正确答案A
完整决策同时覆盖规则与验证:集成测试应断言状态码、媒体类型、关键头和响应模型,而非只检查正文包含文本;并确认 时间、ID 和排序等不稳定字段应使用语义断言,避免脆弱快照。继续接受“HTTP 200 足以证明业务、副作用和契约全部正确”会让评审依据失真;只改代码不验证边界,或只检查边界却沿用误区,都不足以判断“接口返回错误对象但测试仍只断言成功状态”这一生产场景能否安全上线。