我一直在使用方法swizzling来交换单元测试的实现。但是,我担心如果生产代码的方法签名由于参数更改而更改,单元测试将在编译时没有错误,并且测试运行时行为可能不稳定。
那么,有没有什么编译时甚至运行时的方法来确认两个Objective-C方法的签名是相同的呢?
发布于 2018-12-12 07:40:45
只要您已经设置了您的单元测试,这样编写代码就好像您正在使用它的真实接口调用真实类的实例一样,那么签名中的更改应该在编译时被捕获。
您可以遍历运行时并获取方法签名,然后比较所述签名的元素的兼容性,但这不会捕获所有更改(例如,所有接受对象的参数都编码为“@”)。
https://stackoverflow.com/questions/53732682
复制相似问题