Mocking Rest API endpoint

Welcome Forums Pester Mocking Rest API endpoint

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

 
Participant
1 month, 3 weeks ago.

  • Author
    Posts
  • #114532

    Participant
    Points: 11
    Rank: Member

    Does anyone have a recommendation on mocking a Rest API endpoint with Pester? I have a number of modules that use invoke-restmethod to consume Rest APIs and am able to unit test a function with something like this:

    Mock -CommandName Invoke-RestMethod -Parameters { $PSBoundParameters.body -eq '{"submit1": "A Value"}'} -MockWith { return (convertfrom-json '{"return1": "Some value"}') }

    This works well for making sure a function sends the correct data to Invoke-RestMethod and processes the expected results, but it depends upon knowing how the function was implemented internally; i.e. the function can't be changes to use Invoke-WebRequest without changing all the Mocks and tests.

    I am thinking that if I was able to mock the web response, rather than the Invoke-RestMethod or Invoke-WebRequest, unit testing would be more effective, but I haven't been able to figure out a good way to the that with Pester.

  • #114553

    Participant
    Points: 832
    Helping Hand
    Rank: Major Contributor

    I would say whatever you have now is the best possible, mocks are for mocking cmdlet/functions and you are in a way mocking the web response.

You must be logged in to reply to this topic.