我们正在尝试评估
Invoke-Command
是否已被调用一次。
Script.ps1
$job = Invoke-Command -ScriptBlock {'test'} -ComputerName localhost -AsJob
$job | Wait-Job
Script.Tests.ps1
BeforeAll {
$testScript = $PSCommandPath.Replace('.Tests.ps1', '.ps1')
Mock Invoke-Command
}
Describe 'Test' {
It 'should be green' {
. $testScript
Should -Invoke Invoke-Command -Times 1 -Exactly -Scope It
}
}
问题是在 Pester 中模拟工作对象。当作业没有被模拟时,Wait-Job
将会抛出一个错误,表示它没有收到工作对象。
如何在 Pester
中模拟 PowerShell 工作对象呢?