0

我正在阅读 Graham Lee 的“Test-Driven iOS Development”来学习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在类扩展中使用 a 是否安全?

4

1 回答 1

1

这是个人选择的问题。

如果您使用属性并且总是用self.somethingor来引用它们[self something],那么区分实例变量和局部变量可能会更容易......

就我个人而言,我使用带有(某些人讨厌的)“_”前缀的 ivars。

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

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

于 2013-10-30T11:14:51.180 回答