File tree Expand file tree Collapse file tree 1 file changed +24
-0
lines changed
docs/architecture/mobile-clients/ios Expand file tree Collapse file tree 1 file changed +24
-0
lines changed Original file line number Diff line number Diff line change @@ -468,3 +468,27 @@ or it cannot handle some closure types, specially in function's parameters. In s
468
468
create the mock manually and remove the protocol's comment as ` AutoMockable ` .
469
469
470
470
:::
471
+
472
+ #### Custom annotations
473
+
474
+ Sourcery allows us to annotate different parts of our code to guide code generation. On top of this
475
+ custom annotations have been added in ` AutoMockable.stencil ` to handle special cases.
476
+
477
+ - ** useSelectorName** : Method annotation used to indicate that the generated mocked properties need
478
+ to use the selector name instead of the short method name. This is specially useful when using
479
+ function overloading where we need the mocked names to also have the parameters names to
480
+ differentiate between the different mocked functions.
481
+ - ** mockReceivedInvocations** : Method annotation used to indicate that we want to generate the
482
+ mocked property to store an array of the received invocations of the parameters passed each time
483
+ the function is called.
484
+
485
+ For example:
486
+
487
+ ``` swift
488
+ protocol FooProtocol { // sourcery: AutoMockable
489
+ func bar (fooParameter : String ) -> Bool
490
+ func bar (anotherParameter : Int ) -> Bool // sourcery: useSelectorName
491
+ func saveNumber (theNumber : Int ) -> Bool // sourcery: mockReceivedInvocations
492
+ func annotateMultiple (fooParameter : String ) // sourcery: useSelectorName, mockReceivedInvocations
493
+ }
494
+ ```
You can’t perform that action at this time.
0 commit comments