Gee*_*eek 38 unit-testing objective-c gh-unit ios ios6
我用GHUnit.我想单独测试私有方法,不知道如何测试它们.我找到了很多关于为什么不测试私有方法的答案.但没有找到如何测试它们.
我不想讨论是否应该测试私有,但是会关注如何测试它.
谁能给我一个如何测试私有方法的例子?
Abi*_*ern 106
Objective-C中的方法并不是真正的私有.您收到的错误消息是编译器无法验证您调用的方法是否存在,因为它未在公共接口中声明.
解决这个问题的方法是在类类别中公开私有方法,它告诉编译器方法存在.
所以在测试用例文件的顶部添加这样的内容:
@interface SUTClass (Testing)
- (void)somePrivateMethodInYourClass;
@end
Run Code Online (Sandbox Code Playgroud)
SUTClass是您为其编写测试的类的实际名称.
这将使您的私有方法可见,并且您可以在没有编译器警告的情况下对其进行测试.
有点晚了,但我刚上了TDD列车.
不应测试私有方法.因为您编写私有方法来支持您的公共方法,因此测试您的公共方法会间接测试支持它们的私有方法.
原则"不应该测试私有方法"的原则是"当你需要测试私有方法时,它可能意味着你应该将这些方法移动到单独的类",从而使它们公开.
| 归档时间: |
|
| 查看次数: |
13055 次 |
| 最近记录: |