4

UIFontクラス .hファイルにメソッドを追加しました

  @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と、クラッシュしませんが、1つのブレークポイントで停止し、このメッセージが表示されます Thread 1: EXC_BREAKPOINT(code=EXC_1385_BPT,subcode=0*0

ブレークポイントを設定せず、デバッグモードではなく「リリース」モードで実行しています。

ここに画像の説明を入力してください

この問題を解決するために私を助けてください。

4

2 に答える 2

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");
    }
}
于 2013-05-21T10:39:28.633 に答える