Former Microsoft Azure MVP,
Co-organizers of the French PowerShell & DevOps UG .
Find me on https://github.com/omiossec or https://www.linkedin.com/in/omiossec/
Living in Amsterdam, NL
Hi, thanks for the answer. Tried like you said but doesn't work. Finally I have found that the problem was the -ParameterFilter. Doing $Identity.toString() -eq "testList" it works perfectly. That .toString() makes the difference!
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
First of all, thanks you Olivier for this AWESOME introduction to Pester!
I'm trying to mock a function but isn't working as expected. The mocking is:
Mock Get-PnPList{return @{"Title"="testList"}} -ParameterFilter { $Identity -eq "testList" }
Mock Get-PnPList{return $null } -ParameterFilter { $Identity -ne "testList" }
The script code is:
function checkListExists{
Param([Parameter(Mandatory = $true)][string] $listTitle)
$list = Get-PnPList -Identity $listTitle
if($null -eq $list){
return $false
}
else{
return $true
}
}
And finally I'm calling
checkListExists "testList" | Should -BeTrue
But the test fails: "Expected $true, but got $false."
I'm debugging and the parameter -Identity $listTitle of the Get-PnPList function is receiving the value "testList".
Why the moking is not working as expected?
Thanks!
I plan to write a post about mocking in Pester
You should try to do somehitng like that
Mock Get-PnPList -MockWith {
[pscustomobject]@{
"Title" = "testList"
}
} -ParameterFilter { $Identity -eq "testList" }
Hi, thanks for the answer. Tried like you said but doesn't work. Finally I have found that the problem was the -ParameterFilter. Doing $Identity.toString() -eq "testList" it works perfectly. That .toString() makes the difference!