Home > Blockchain >  Pester Should -Throw does not catch error
Pester Should -Throw does not catch error

Time:04-26

This is the same problem and solution as this, but with simpler examples and hopefully easier to find, since it took me hours to find the above question.

I have the following code that I want to test:

Test-Function(){
  {...}
  if($ExitCode -ne 0){
    throw "Stopped with exit code $ExitCode"
  }
}

I am trying to test it using this:

It "Testing"{
  Test-Function -Bad "Params" | Should -Throw
}

When I run this, I get the following error:

   [-] Testing 1.03s (1.03s|2ms)
    RuntimeException: Stopped with exit code 10
    At Test-Function {...}

I already tried using the exact error message in Should -Throw and using Write-Error instead of throwing. None of those worked for me

CodePudding user response:

When testing for Should -Throw, the code must be inside of a script block, so it should look like this:

It "Testing"{
  {Test-Function -Bad "Params"} | Should -Throw
}
  • Related