Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @objcMembers class Mock: NSObject {
- func swizzling(forClass: AnyClass, originalSelector: Selector, swizzledSelector: Selector) {
- let originalMethod = class_getInstanceMethod(forClass, originalSelector)
- let swizzledMethod = class_getInstanceMethod(forClass, swizzledSelector)
- method_exchangeImplementations(originalMethod!, swizzledMethod!)
- }
- }
- protocol MyProtocol {
- func method1()
- func method2()
- }
- class MyClassMock: Mock, MyProtocol {
- dynamic func method1() {
- print("Mock method1")
- }
- dynamic func method2() {
- print("Mock method2")
- }
- }
- let myClassMock = MyClassMock()
- myClassMock.swizzling(
- forClass: MyClassMock.self,
- originalSelector: #selector(type(of: myClassMock).method1),
- swizzledSelector: #selector(type(of: myClassMock).method2)
- )
- myClassMock.method1() // Mock method2
Add Comment
Please, Sign In to add comment