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,它没有崩溃,而是在一个断点处停止,并且这条消息即将到来 Thread 1: EXC_BREAKPOINT(code=EXC_1385_BPT,subcode=0*0

我没有放任何断点,我在“发布”模式下运行,而不是在调试模式下。

在此处输入图像描述

请协助我解决此问题。

4

2 回答 2

0

您需要添加一个测试主机应用程序(查找“测试主机”和“捆绑加载程序”)。如果您没有这样的测试主机,某些 UIKit 方法会在这样的 HALT 条件下崩溃。

在最简单的情况下,它只是一个 main.m 和 info.plist。请参阅我的博客文章,其中解释了如何设置一个简约的捆绑加载器来解决这个问题。

于 2013-10-07T18:43:09.493 回答
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 回答