返回题库高级 .NET 刷题ASP.NET Core 选择题 · 第 43 / 50 篇

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 足以证明业务、副作用和契约全部正确”会让评审依据失真;只改代码不验证边界,或只检查边界却沿用误区,都不足以判断“接口返回错误对象但测试仍只断言成功状态”这一生产场景能否安全上线。

官方资料

当前分类

ASP.NET Core 选择题

查看全部分类 →
  1. 41ASP.NET Core 试题 41:gRPC 服务20 题
  2. 42ASP.NET Core 试题 42:OpenAPI 文档20 题
  3. 43ASP.NET Core 试题 43:集成测试20 题
  4. 44ASP.NET Core 试题 44:单元测试与可测试设计20 题
  5. 45ASP.NET Core 试题 45:EF Core DbContext 与跟踪20 题
ESC

输入关键词开始搜索