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
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
}