gpt4 book ai didi

powershell - 如何模拟 Pester 的工作?

转载 作者:行者123 更新时间:2023-12-04 14:54:12 25 4
gpt4 key购买 nike

我们正在尝试评估 Invoke-Command被调用了一次。

脚本.ps1

Get-Job | Remove-Job

Invoke-Command -ScriptBlock {'test'} -ComputerName localhost -AsJob

Wait-Job
Get-Job | Reveive-Job

Script.Tests.ps1
Describe 'Test' {
Mock Invoke-Command {
# Mock here
}
It 'should be green' {
."$here\$sut" @Params
Assert-MockCalled -CommandName Invoke-Command -Times 1 -Exactly -Scope It
}
}

问题是在 Pester 中模拟作业对象。当作业没有被模拟时, Wait-Job将抛出一个错误,表明它没有收到作业对象。

如何在 Pester 中模拟 PowerShell 作业对象?

最佳答案

一种解决方案可能是使用 Mock Invoke-Command 仍然会创建一个合法的作业,但会执行一些您认为安全的脚本/代码以进行测试。

为此,您需要先输入 Invoke-Command cmdlet 以便您可以通过该变量使用它(因为 Mock 不能直接调用它自己的命令)。

例如:

$InvokeCommand = Get-Command Invoke-Command

Mock Invoke-Command {
& $InvokeCommand -ScriptBlock {'some safe alternative code'} -ComputerName localhost -AsJob
}

关于powershell - 如何模拟 Pester 的工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51360568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com