GHUnit 访问私有变量

Posted

技术标签:

【中文标题】GHUnit 访问私有变量【英文标题】:GHUnit access private variable 【发布时间】:2013-01-10 11:13:13 【问题描述】:

我试图在我的单元测试中访问一个私有类变量:

Class
 - private variable abc;

unit test
category/extension above the unittest m file content
 @property (...) variable abc;

但在测试中,我总是遇到无法识别的选择器错误... 有什么技巧可以让私有变量可见/可测试?

抱歉,谷歌一无所获;)

您好, 马蒂亚斯

【问题讨论】:

【参考方案1】:

试试[obj valueForKey:@"_ivar"]

您还可以为该类创建一个类别,并且您可以在方法期间访问任何私有变量

@implementation MyClass (UnitTestAddition)

- (id)getPrivateVariable 
    return _ivar;


@end

【讨论】:

太好了,obj valueforkey 正在工作 - 你知道为什么 obj._ivar 没有吗?谢谢!!! 要做或obj.ivar,该类必须在实现中实现[ivar],或者由编译器合成。否则将是无法识别的选择器异常。但是,您可以在类别中实现访问器

以上是关于GHUnit 访问私有变量的主要内容,如果未能解决你的问题,请参考以下文章

Python私有变量与私有方法

.net 反射访问私有变量和私有方法

JS 私有变量

函数中的私有变量和特权方法

Solidity 访问私有变量

多重继承需要访问私有变量