Skip to content

Conversation

@brackendawson
Copy link
Collaborator

@brackendawson brackendawson commented Jul 26, 2021

Summary

Allow mock expectations to be ordered

Changes

  • Give each Call to be used in Mock.ExpectedCalls a []*Call which must all be satisfied first.
  • Define Call.NotBefore() to allow the above to be populated.
  • Check each call's requirements before processing the found expected call. This needed some existing code to be extracted to a new method Mock.checkExpectation().

Motivation

People want to check that some calls were made in a necessary order.

call1 := mockThing.On("Init").Return(nil)
call2 := mockThing.On("Do").Return(nil).NotBefore(call1)
mockThing.On("Close").Return(nil).NotBefore(call1, call2)

Related issues

Closes #741

Copy link
Collaborator

@boyan-soubachov boyan-soubachov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you for your contribution :)

@boyan-soubachov boyan-soubachov added this to the v1.8.0 milestone Jul 28, 2021
@barp
Copy link

barp commented Nov 2, 2021

When will this be merged?

@ehmm
Copy link

ehmm commented Jun 23, 2022

Are we missing something to merge this?

@boyan-soubachov
Copy link
Collaborator

There are conflicts to resolve on mock/mock.go. @brackendawson , do you mind giving them a look? :)

@brackendawson
Copy link
Collaborator Author

There you go. 🙂

Copy link
Collaborator

@boyan-soubachov boyan-soubachov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great, thank you!

@boyan-soubachov boyan-soubachov merged commit cf1284f into stretchr:master Jun 28, 2022
@brackendawson brackendawson deleted the mock-order branch April 27, 2023 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

assert mock calls in order

4 participants