gpt4 book ai didi

powershell - 如何测试解析的参数集?

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

我正在尝试编写一个基本的Pester测试,以检查已解决参数集的“高级”功能:

function Do-Stuff
{
[CmdletBinding(DefaultParameterSetName='Set 1')]
[OutputType([String])]

Param
(
[Parameter(ParameterSetName='Set 1')]
[switch]
$S1,

[Parameter(ParameterSetName='Set 2')]
[switch]
$S2
)

$PSBoundParameters |select -ExpandProperty Keys
}

Describe Do-Stuff {
It 'Returns "S2" when switch "S2" is set' {
$actual = Do-Stuff -S2
$expexted = 'S2'
$actual |Should Be $expexted
}

# How to test the resolved parameter set?
It 'The resolved parameter set is "Set 2" when switch "S2" is set' {
$actual = 'What to do here?' # I'm lost ;(
$expexted = 'Set 2'
$actual |Should Be $expexted
}
}

谢谢因为我是Pester的新手,所以任何建议都将不胜感激。 ...在豪华和一般编码方面也没有什么好:D

最佳答案

以下将测试您是否对参数S2使用“设置2”:

Describe Do-Stuff {
$Command = Get-Command 'Do-Stuff'

It 'Returns "S2" when switch "S2" is set' {
$actual = Do-Stuff -S2
$expexted = 'S2'
$actual |Should Be $expexted
}

# How to test the resolved parameter set?
It 'The resolved parameter set is "Set 2" when switch "S2" is set' {
$actual = $Command.Parameters["S2"].ParameterSets.Keys
$expexted = 'Set 2'
$actual |Should Be $expexted
# when you use several sets for parameters
$expexted -contains $actual | should Be $true
}

}

跟踪powershell是否实际上在执行“set 2”(设置为2),而不是进行虫害测试的主题...

关于powershell - 如何测试解析的参数集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34373156/

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