How to provide multiple mocks to pester?

Welcome Forums Pester How to provide multiple mocks to pester?

This topic contains 1 reply, has 2 voices, and was last updated by

 
Keymaster
1 year, 9 months ago.

  • Author
    Posts
  • #70636

    Participant
    Points: 0
    Rank: Member

    Hi,
    I'm a newbie to Pester so please forgive me if this has been answered already. I want to run multiple unit tests on a PowerShell function, providing a range of mocks to exercise the function. Below is the function and test code I've written. I'd like to mock Get-WASJob multiple times, providinga seperate mock to each unit test.
    How do I do this?
    Thanks,
    John

    Function GetWASJob {
        param ( [string]$project, [string]$job, [string]$os, [string]$runtype )
        $runjob = Get-WASJob -ProjectName $project -JobName $job -ErrorAction Stop
    
        #Check if the WAS job is valid
        if ($runjob -and $runjob.JobName) {
            WriteToLog "GetWASJob: Returned a valid WAS job" $logfile
        }
        else {
            WriteToLog "GetWASJob: Valid WAS job not returned...Quit" $logfile
            break
        }
        return $runjob
    }

    Pester code to test the above function:

    Describe "GetWASJob" {
        Context "Just Testing..." {
            Mock Get-WASJob {
                $obj = New-MockObject -Type 'Microsoft.Assessments.WAS.PowerShell.WASJob'
                $obj | Add-Member -Type NoteProperty -Name 'JobName' -Value 'PesterJob1' -Force
                $obj | Add-Member -Type NoteProperty -Name 'Tags' -Value 'PesterTag1' -Force
                return $obj
            }
    
        	$result = GetWASJob -project "Project1" -job "Job1" -os "Windows10" -runtype "Production"
    
    	    It "Verified that all mocks were called" {
    	        Assert-VerifiableMocks
    	    }
    	    It "Checks that a valid job object was returned" {
                $result.JobName | Should Be "PesterJob1"
    	    }
        }
    }
  • #70858

    Keymaster
    Points: 1,811
    Helping HandTeam Member
    Rank: Community Hero

    If I'm understanding what you want, you'd use multiple Context blocks for each scenario.

The topic ‘How to provide multiple mocks to pester?’ is closed to new replies.

denizli escort samsun escort muğla escort ataşehir escort kuşadası escort