1

全て:

次の単体テスト クラスがあります (実装ファイルを示します)。

@implementation SampleTests {
    A* c;
    NSString* token;
}

- (void)setUp
{
    [super setUp];

    // Set-up code here.
    c = [[A alloc] init];
}

- (void)tearDown
{
    // Tear-down code here.

    [super tearDown];
}

- (void)testA
{
    token = @"sample";
}

-(void)testB
{
    [c method:token]; // <-- fails because token is nil, but c has a correct value. Why!
}

@end

テストを実行すると、トークンが nil であるため testB は失敗しますが、問題はありませんが、なぜtoken破棄されるのでしょうか?

4

3 に答える 3

1

私の知る限り、現在の実装ではテスト メソッドがアルファベット順に実行されるため、サンプルは問題なく実行されるはずです。

通常、何かを最初にテストしたい場合は、メソッドなどに名前を付けtest1_criticalFeatureますtest2_dependentFeatures

于 2013-04-08T15:04:45.603 に答える
0

テストメソッドが実行される順序は保証されていないため、並行して実行さtestBれる前testAまたは将来に実行される可能性があります。

于 2013-04-08T14:44:16.977 に答える