0

XCode 4.2 で奇妙な問題が 1 つあります。最近、例外を発生させるSomeClasswith メソッドという名前のクラスを持つプロジェクトに、コード カバレッジ サポートを追加することにしました。someMethod

@interface SomeClass : NSObject

- (void)someMethod;

@end


@implementation SomeClass

- (void)someMethod {  
  [NSException raise:NSInternalInconsistencyException format:@"Some reason..."];
}

@end

クラスはSomeClassTests、次のメソッドを持つテスト プロジェクトに配置することによってテストされます。

- (void)testSomeMethod {
   SomeClass *sClass = [[SomeClass alloc] init];

   STAssertThrowsSpecificNamed([sClass someMethod], NSException, NSInternalInconsistencyException, @"Some description...");
}

ここまでは順調です。テストはパスしました。コード カバレッジをサポートするには、このソースに従って「Instrument Program Flow」と「Generate Test Coverage Files」のビルド設定を有効にする必要があります。しかし、"Instrument Program Flow" をオンにすると、次のエラーでテストが失敗しました:"raised Some reason... (Expected exception:NSException)" 他のすべてのテストは正常に動作します。この動作の理由は何でしょうか?

4

1 に答える 1

0

最新のxcodeにアップグレードするだけでこれを修正しました。

于 2012-07-03T15:40:40.327 に答える