gpt4 book ai didi

ios - 如何测试自定义单元格是否已在 tableView 中注册?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:19:26 26 4
gpt4 key购买 nike

如果自定义单元格已注册到 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] failed: Could not load NIB in bundle: 'NSBundle (loaded)' with name 'FTStatsCellView'

有什么建议吗?谢谢

更新

如果我单击该项目并将测试目标 的目标从“无”更改为应用程序,那么它就可以工作了。

enter image description here

但这有副作用,每次我想运行单元测试时,应用程序都会在模拟器中运行。

enter image description here

有什么建议吗?

最佳答案

设置目标为测试目标指定 BUNDLE_LOADER 和 TEST_HOST。在运行单元测试时,这对于以下序列是必需的:

  1. Xcode 在模拟器中启动您的应用程序(或在设备上,但我从不在设备上运行单元测试)
  2. Xcode 将测试目标注入(inject)到正在运行的应用中
  3. Xcode 调用所有测试
  4. Xcode 退出您的应用

所有这些对于在 Cocoa Touch 之上运行的单元测试都是必要的——特别是任何涉及加载其 View 层次结构的 View Controller 。

关于ios - 如何测试自定义单元格是否已在 tableView 中注册?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20936712/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com