2012-11-26 75 views
4

我已經加入方法UIFont.h文件中問題編寫單元測試用例UIFont分類

@interface UIFont (UIFont_CustomisedFont) 
    +(UIFont*)bold11; 
    +(UIFont*)bold12; 
    +(UIFont*)bold13; 

.m文件

+(UIFont*)bold11{ 
    return [UIFont boldSystemFontOfSize:11]; 
} 
+(UIFont*)bold12{ 
    return [UIFont boldSystemFontOfSize:12]; 
} 
+(UIFont*)bold13{ 
    return [UIFont boldSystemFontOfSize:13]; 
} 

類似的方式,我已經添加這樣許多方法到UIFont類別

對於上面的方法我已經寫單元測試用例使用OCUnitTest

-(void)testBold11 
{ 
    @try { 
     UILabel *lbl = [[UILabel alloc] init]; 
     lbl.font = [UIFont bold11]; 
    }  
    @catch (NSException *exception) { 
     NSLog(@"main: Caught %@: %@", [exception name], [exception reason]); 
     STFail(@"testBold11 failed"); 
    } 
} 

類似UnitTestCases其他功能還

當我運行UnitTest,它不是崩潰,而是停在一個斷點,這個消息來了Thread 1: EXC_BREAKPOINT(code=EXC_1385_BPT,subcode=0*0

我沒有放任何斷點,我運行在「版本」模式,而不是在調試模式。

enter image description here

請幫助我解決這個問題。

+0

我在這裏有同樣的東西......任何解決方案? –

回答

0

創建一個更好的測試情況下,不涉及無關UILabel類:

-(void)testBold11 
{ 
    @try { 
     UIFont *font = [UIFont bold11]; 
     STAssertNotNil(font, @"Failed to create font"); 
     STAssertEquals(font.pointSize, 11.0, @"Wrong point size"); 
    }  
    @catch (NSException *exception) { 
     NSLog(@"main: Caught %@: %@", [exception name], [exception reason]); 
     STFail(@"testBold11 failed"); 
    } 
} 
0

您需要添加一個測試主機的應用程序(尋找「測試主機」和「捆綁裝載機」)。如果您沒有這樣的測試主機,某些UIKit方法會在這種HALT條件下崩潰。

最簡單的就是main.m和info.plist。請參閱我的博客文章,其中解釋了how to set up a minimalistic bundle loader以解決此問題。