gpt4 book ai didi

powershell - 使用 Pester 5 和 PowerShell 7 模拟类函数

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

有没有人有使用 Pester 5 和 PowerShell 7 模拟点源类函数的示例?

谢谢。

编辑:示例

类\MyClass.ps1:

class MyClass {
[void] Run() {
Write-Host "Class: Invoking run..."
}
}

我的模块.psm1:

# Import classes
. '.\Classes\MyClass.ps1'

# Instantiate classes
$MyClass = [MyClass]::new()

# Call class function
$MyClass.Run()

最佳答案

Pester 只模拟命令 - 不模拟类或它们的方法。

“模拟”PowerShell 类以进行方法分派(dispatch)测试的最简单方法是利用 PowerShell 将所有方法标记为 virtual 的事实,从而允许派生类覆盖它们:

class MockedClass : MyClass
{
Run() { Write-host "Invoking mocked Run()"}
}

这种方法的好处在于,将输入限制为 MyClass 类型的函数仍将适用于模拟类型:

function Invoke-Run
{
param([MyClass]$Instance)

$instance.Run()
}

$mocked = [MockedClass]::new()
Invoke-Run -Instance $mocked # this still works because [MockedClass] derives from [MyClass]

关于powershell - 使用 Pester 5 和 PowerShell 7 模拟类函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65200650/

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