Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Access External Variable from with-in Mock Script Block (Pester)

Pretend I have a function like...

function Get-Something {
  return Get-DogShit
}

...in my Pester test script...

$var = 1

Mock 'Get-Dogshit' { return $var }

it 'should return true' {
  Get-Something | should $var
}

This doesn't work, but you see what I'm trying to do here? I want to get the value from a local variable into a MOCK script block. I want to avoid hard coding the return value in the mock and the expected result in the it-block. Any ideas on how I can achieve this?

like image 290
Adam Avatar asked May 25 '26 00:05

Adam


1 Answers

I had this problem myself, and script scope didn't work and I didn't care to use global scope. A bit of research shows how you can use closures for this.

$var = 1

Mock 'Get-Dogshit' { return $var }.GetNewClosure()

it 'should return true' {
  Get-Something | Should be $var
}
like image 59
wekempf Avatar answered May 27 '26 21:05

wekempf