如果自定义单元格已在tableView
注册,我想进行单元测试。
-(void)viewDidLoad
{
[super viewDidLoad];
UINib *nib = [UINib nibWithNibName:@"FTStatsCellView" bundle:nil];
[[self tableView] registerNib:nib forCellReuseIdentifier:@"FTStatsCellView"];
}
单元测试:
-(void)testIfCustomCellsAreRegisteredToTable
{
[viewController viewDidLoad];
FTStatsCellView *cell = [[viewController tableView] dequeueReusableCellWithIdentifier:@"FTStatsCellView"];
XCTAssertNotNil(cell, @"Custom cell FTStatsCellView is not registered with the table.");
}
测试失败并显示以下消息:
[FTStatsViewControllerTests testIfCustomCellsAreRegisteredToTable] 失败:无法在捆绑中加载NIB:'NSBundle (加载)'名称'FTStatsCellView'
有什么建议吗?感谢
更新
如果我点击项目并将test target
的目标从None更改为应用程序,那么它可以正常工作。
但这会产生副作用,即每次我想要运行单元测试时应用程序都会在模拟器中运行。
有什么建议吗?
答案 0 :(得分:1)
设置目标为测试目标指定BUNDLE_LOADER和TEST_HOST。运行单元测试时,这对于以下顺序是必需的:
对于在Cocoa Touch上运行的单元测试,所有这些都是必需的 - 特别是涉及视图控制器加载其视图层次结构的任何内容。