2012-05-12 11 views
0

Xcode 4.2に奇妙な問題が1つあります。最近、私は例外を発生させる方法someMethodSomeClassという名前のクラスを持っている私のプロジェクトにコードカバレッジのサポートを追加することにしました:STAssertThrowsSpecificNodeとXCode 4.2のコードカバレッジ

@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"と "Test Coverage Filesの生成"を有効にして、this sourceに従ってビルド設定を行う必要があります。しかし、私がオンにしたときに、 "Instrument Program Flow"は次のエラーで失敗しました:"raised Some reason... (Expected exception:NSException)" 他のすべてのテストはうまくいきます。この行動の理由は何でしょうか?

答えて

0

最新のxcodeにアップグレードするだけで解決しました。

+0

いいえ、私はしていません。残念ながら、私は例外の正確な型をチェックしないように強制されました... –

+0

私はGHAssertThrows()を使用していますが、例外の型をチェックしません..しかし、それはまだcatchする代わりに例外を渡します=( –

+0

Stack Overflowへようこそ。これは答えではありません。コメントとして再投稿してください。 –