2012-05-12 105 views
0

我有一個奇怪的問題與XCode 4.2。最近,我決定添加代碼覆蓋率的支持,我的項目,有一個名爲SomeClass與方法someMethod類引發的異常:STAssertThrowsSpecificNamed和代碼覆蓋率在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..."); 
} 

到目前爲止這麼好 - 測試通過。爲了支持代碼覆蓋範圍,我必須根據this source開啓「儀器程序流程」和「生成測試覆蓋率文件」構建設置。但是當我打開 「儀器程序流程」時,測試失敗,出現以下錯誤:"raised Some reason... (Expected exception:NSException)" 所有其他測試都很好。什麼可能是這種行爲的原因?

回答

0

我已經解決了這個問題,只是升級到最新的xcode。

+0

不,我沒有。不幸的是,我被迫不檢查確切類型的例外... –

+0

我只是使用GHAssertThrows(),它不檢查類型的異常..但它仍然只是通過異常向前,而不是捕捉它=( –

+0

歡迎來到堆棧溢出,這不是一個答案,請轉發它作爲一個評論請 –