You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pester测试中Mock Get-CimInstance未生效返回真实系统版本问题

问题产生原因
  • 核心诱因是代码执行时序完全错位,Mock生效时机晚于真实命令调用:
    你在BeforeAll块中点源加载无函数封装的WinVersion.ps1时,脚本的顶层执行逻辑会立刻运行:Get-CimInstance命令会在测试流程进入It块、定义Mock规则之前就直接调用真实实现,把当前环境的真实系统版本赋值给$WindowsVersion变量。等你后续在It块中写完Mock配置时,真实的命令调用早就执行完成,$WindowsVersion已经存储了真实值,Mock自然不会被触发,这也是移除ParameterFilter参数后问题仍然存在的根本原因。
  • 次要问题是Mock代码存在拼写错误:Mock返回值的类型名[Microsoft.Management.Infrastructure.CimInstanc]缺失末尾的字母e,正确类型全称为[Microsoft.Management.Infrastructure.CimInstance],即使解决时序问题,这个笔误也会导致Mock返回对象不符合预期。

内容的提问来源于stack exchange,提问作者eagle00789

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 09:21:41