从 with-in Mock 脚本块访问外部变量(Pester)
Access External Variable from with-in Mock Script Block (Pester)
假装我有一个函数...
function Get-Something {
return Get-DogShit
}
...在我的 Pester 测试脚本中...
$var = 1
Mock 'Get-Dogshit' { return $var }
it 'should return true' {
Get-Something | should $var
}
这行不通,但你看到我在这里想做什么了吗?我想从局部变量中获取值到 MOCK 脚本块中。我想避免硬编码模拟中的 return 值和 it 块中的预期结果。关于如何实现这一点有什么想法吗?
不确定它是否会工作,因为之前没有与 pester 混淆,但显然它遵循与标准 PowerShell 相同的 scope rules。
所以 $script:var = 1
,brute-force $global:var = 1
如果没有或者如果您需要从脚本范围之外调用它。
我自己也有这个问题,脚本作用域不起作用,我也懒得用全局作用域。一些研究显示了如何为此使用闭包。
$var = 1
Mock 'Get-Dogshit' { return $var }.GetNewClosure()
it 'should return true' {
Get-Something | Should be $var
}
假装我有一个函数...
function Get-Something {
return Get-DogShit
}
...在我的 Pester 测试脚本中...
$var = 1
Mock 'Get-Dogshit' { return $var }
it 'should return true' {
Get-Something | should $var
}
这行不通,但你看到我在这里想做什么了吗?我想从局部变量中获取值到 MOCK 脚本块中。我想避免硬编码模拟中的 return 值和 it 块中的预期结果。关于如何实现这一点有什么想法吗?
不确定它是否会工作,因为之前没有与 pester 混淆,但显然它遵循与标准 PowerShell 相同的 scope rules。
所以 $script:var = 1
,brute-force $global:var = 1
如果没有或者如果您需要从脚本范围之外调用它。
我自己也有这个问题,脚本作用域不起作用,我也懒得用全局作用域。一些研究显示了如何为此使用闭包。
$var = 1
Mock 'Get-Dogshit' { return $var }.GetNewClosure()
it 'should return true' {
Get-Something | Should be $var
}