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.somethingまたは[self something]でそれらを参照する場合、インスタンス変数とローカル変数を区別する方が簡単かもしれません...

個人的には、(一部の人々に嫌われている) "_" プレフィックスを付けて ivar を使用しています。

違いが生じる唯一のケースは、 でプロパティを宣言する場合copyです。特定のケース(テストクラス)では、通常、プロパティを使用してテスト対象のオブジェクトおよび/またはその依存関係(モックかどうか)を取得するため、これらのシナリオでコピーを使用することはまれだと思います。

あなた/あなたのチームにとってより良いと思うものを使用してください。

于 2013-10-30T11:14:51.180 に答える