A Sourcery template to automatically generate mocks from Swift protocols.
Create a class called ProtocolNameMock
in which it will...
For each function:
- Implement the function
- Add a
functionCalled
boolean to check if the function was called - Add a
functionRecievedArguments
tuple to check the arguments that were passed to the function - Add a
functionReturnValue
variable and return it when the function is called.
For each variable:
- Add a gettable and settable variable with the same name and type
- Overloaded methods will produce compiler erros since the variables above the functions have the same name. Workaround: delete the variables on top of one of the functions, or rename them.
- Handling success/failure cases (for callbacks) is tricky to do automatically, so you have to do that yourself.
- This is not a full replacement for hand-written mocks, but it will get you 90% of the way there. Any more complex logic than changing return types, you will have to implement yourself. This only removes the most boring boilerplate you have to write.
You will need Sourcery for this to work. See the Sourcery readme for more info.
Pull requests welcome!