Guest User

Untitled

a guest
Nov 18th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. @objcMembers class Mock: NSObject {
  2. func swizzling(forClass: AnyClass, originalSelector: Selector, swizzledSelector: Selector) {
  3. let originalMethod = class_getInstanceMethod(forClass, originalSelector)
  4. let swizzledMethod = class_getInstanceMethod(forClass, swizzledSelector)
  5. method_exchangeImplementations(originalMethod!, swizzledMethod!)
  6. }
  7. }
  8.  
  9. protocol MyProtocol {
  10. func method1()
  11. func method2()
  12. }
  13.  
  14. class MyClassMock: Mock, MyProtocol {
  15. dynamic func method1() {
  16. print("Mock method1")
  17. }
  18. dynamic func method2() {
  19. print("Mock method2")
  20. }
  21. }
  22.  
  23. let myClassMock = MyClassMock()
  24. myClassMock.swizzling(
  25. forClass: MyClassMock.self,
  26. originalSelector: #selector(type(of: myClassMock).method1),
  27. swizzledSelector: #selector(type(of: myClassMock).method2)
  28. )
  29.  
  30. myClassMock.method1() // Mock method2
Add Comment
Please, Sign In to add comment