私は PowerShell、特に Pester テストに少し慣れていません。Pester テストを作成している関数のシナリオを再現できないようです。
コードは次のとおりです。
$State = Get-Status
if(State) {
switch ($State.Progress) {
0 {
Write-Host "Session for $Name not initiated. Retrying."
}
100{
Write-Host "Session for $Name at $($State.Progress) percent"
}
default {
Write-Host "Session for $Name in progress (at $($State.Progress)
percent)."
}
}
Get-Status
コードパスがブロック内に入るように true を返すようにモックしましif
たが、結果には の値がありません$State.Progress
。
私のテストは、コード パスに関して常に既定のブロックに入ります。カスタム オブジェクトを作成しようとしました$State = [PSCustomObject]@{Progress = 0}
が、役に立ちませんでした。
これが私の Pester テストの一部です。
Context 'State Progress returns 0' {
mock Get-Status {return $true} -Verifiable
$State = [PSCustomObject]@{Progress = 0}
$result = Confirm-Session
it 'should be' {
$result | should be "Session for $Name not initiated. Retrying."
}
}