假装我有像...这样的功能。
function Get-Something {
return Get-DogShit
}
...在我的Pester测试脚本中......
$var = 1
Mock 'Get-Dogshit' { return $var }
it 'should return true' {
Get-Something | should $var
}
这不起作用,但你看到我在这里想做什么?我想从局部变量获取值到MOCK脚本块。我想避免对mock中的返回值和it-block中的预期结果进行硬编码。关于如何实现这一目标的任何想法?
答案 0 :(得分:1)
我自己遇到了这个问题,脚本作用域不起作用,我也不在乎使用全局作用域。一些研究显示了如何使用闭包。
$var = 1
Mock 'Get-Dogshit' { return $var }.GetNewClosure()
it 'should return true' {
Get-Something | Should be $var
}
答案 1 :(得分:0)
不确定它是否能够像以前那样与pester混淆,但显然它跟标准PowerShell一样scope rules。
所以$script:var = 1
和蛮力$global:var = 1
如果它没有,或者你需要从脚本范围之外调用它。