LCOV没有显示某些类

时间:2014-03-10 05:02:36

标签: objective-c tdd

我有一个抽象的UIViewController,它有方法可以测试。

@interface ABViewController : UIViewController
@property (nonatomic, strong) NSMutableArray *testResults;
- (void)test;
- (void)testFailedWithMessag:(NSString *)message;
@end

@implementation ABViewController
- (void)testFailedWithMessag:(NSString *)message
{
    if(self.testResults == nil)
    {
        self.testResults = [NSMutableArray array];
    }

    [self.testResults addObject:message];
}
@end

这个类的基本思想是测试未列在.h。

上的私有方法

测试例程在子类的“test”方法中有所体现。如下图所示。

RootViewController是ABViewController的子类。

@interface RootViewController ()
{
    UIButton *testButton;
}
@end

@implementation RootViewController
- (void)viewDidLoad
{
    [super viewDidLoad];

    testButton = [[UIButton alloc] init];
}

- (void)test
{
    if(testButton==nil)
        [self testFailedWithMessag:@"testButton is nil"];
}
@end

XCTest如下。

- (void)testRootViewController
{
    // allocation class instance
    RootViewController *testClassInstance = [[RootViewController alloc] init];

    // when
    [testClassInstance view];

    // implement test
    [testClassInstance test];

    // verify result
    XCTAssertTrue(([[testClassInstance testResults] count] == 0), @"%@", [[testClassInstance testResults] description]);
}

我制作了ABViewController的几个子类并运行了单元测试。 LCOV显示测试覆盖率,但它只显示ABViewController。

enter image description here

我想在我的项目中看到所有viewControllers。有办法吗? 函数的数量与viewControllers的函数不匹配。为什么呢?

0 个答案:

没有答案