2

私は 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."
        }
    }
4

1 に答える 1