在OCUnit中使用属性是否安全?

时间:2013-10-30 10:03:44

标签: objective-c unit-testing properties ocunit

我正在阅读Graham Lee撰写的“测试驱动的iOS开发”,以了解OCUnit。我认为这是Xcode背后的几个版本,但仍然是一个有用的资源。

在本书中,测试对象在类扩展中声明,如下所示:

@interface BROAnswerTests : XCTestCase {
    BROAnswer *answer;
    BROAnswer *otherAnswer;
}
@end

然后在- (void)setUp中实例化:

- (void)setUp
{
    [super setUp];
    answer = [[BROAnswer alloc] init];
    answer.text = @"The answer is 42";
    answer.person = [[BROPerson alloc] initWithName:@"Graham Lee" avatarLocation:
                     @"http://example.com/avatar.png"];
    answer.score = 42;
}

在类扩展名中使用@property是否安全?

1 个答案:

答案 0 :(得分:1)

这是个人选择的问题。

如果您使用属性并且始终使用self.something[self something]引用它们,则可以更容易区分实例和局部变量...

我个人使用ivars(有些人讨厌)“_”前缀。

唯一可能产生影响的情况是使用copy声明属性时。在您的特定情况下(测试类),您通常使用属性来获取测试对象和/或其依赖项(模拟与否),因此我认为在这些场景中使用副本很少见。

使用您认为对您/您的团队更好的方式。

相关问题