【发布时间】:2018-12-11 21:35:30
【问题描述】:
我一直在使用方法调配来交换实现以进行单元测试。但是,我担心如果生产代码的方法签名由于参数更改而发生更改,单元测试将无错误地编译,并且测试运行时行为可能会不稳定。
那么,是否有任何编译时甚至运行时的方式来确认两个 Objective-C 方法的签名是否相同?
【问题讨论】:
-
除非您的测试中的方法签名与生产中的相同,否则这不是一个有效的测试。
-
@RobertHarvey:你是说单元测试如果使用签名与生产不匹配的混合方法总是会失败?
-
它不会运行。怎么可能?
-
单元测试可能会崩溃……也可能不会。此类事故在过去一直难以追查。因此,目标是在 swizzling 之前检测方法签名不匹配。有人知道方法吗?
-
好的,很明显我没有资格回答你的问题。我什至不知道“搅拌”是什么意思。我也不明白方法签名如何突然按照您描述的方式改变。
标签: objective-c method-signature swizzling