使用SenTesting Framework进行iPhone单元测试

时间:2012-03-16 07:23:12

标签: iphone testing sentestingkit

我创建了一个项目,它运行正常。现在我需要编写一些测试用例。所以我添加并设置了SenTestingKit。然后我开始编写测试用例,创建一个类的实例并尝试更改该类中某些变量的值。问题是我已经将一些变量声明为local(默认为“protected”),并且无法修改这些变量。那么有没有办法通过改变实例var值来测试而不向每个变量添加@property(nonatomic,retain)?提前谢谢..

3 个答案:

答案 0 :(得分:0)

您可以使用@public将其公开。您可以使用object-> member。

访问该成员

答案 1 :(得分:0)

Objective-C是一种高度内省和反思的语言。您可以访问和修改所有变量,而无需将其配置为公共变量。

如果你真的有一个二传手(但受到保护)你只需做一些事情

[myObject performSelector:@selector(setMyiVar :) withObject:value];

如果你没有setter,你可以使用class_getInstanceVariable始终使用运行时方法来访问和修改你的ivar。请查看http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/ObjCRuntimeRef/Reference/reference.html

希望它有所帮助!

答案 2 :(得分:0)

我的目标是修改实例变量而不将@property()添加到变量中。我通过添加像

这样的实例方法来完成它
-(void)setValueOfArrayCount:(int)newValue{

     arrayCount = newValue;
}

-(int)getValueOfArrayCount{

     return arrayCount;
}

我可以从这个课程的外面调用这些方法。