【问题标题】:Xcode UI Testing - UITableView sectionsXcode UI 测试 - UITableView 部分
【发布时间】:2015-12-17 08:46:04
【问题描述】:

我想使用 Xcode 的 UI 测试来计算 tableview 中的节数和每个节中的单元格数。我该怎么做?

【问题讨论】:

  • 为什么不使用你的数据源呢?
  • 1.如何从 UI 测试中访问代码? 2. 我想确保从数据源正确解析这些部分
  • 只需从您的 UI 测试类中调用 tableview 的 numberOfSection 和 numberOfRows ...?(不确定我的问题是否正确)
  • 我无法从 UI 测试类访问 tableview
  • 无法直接从 UI 测试目标访问应用程序代码。有关详细信息,请参阅this answer

标签: ios xcode uitableview xcode7 xcode-ui-testing


【解决方案1】:

从 Xcode 7 开始,表格视图标题显示为 Other 元素。

以下是我为应用中的(分组)表格视图所做的:

extension TableLayoutTests {

    func testHasMessagesGroup() {
        XCTAssert(app.tables.otherElements["MESSAGES"].exists)
    }

    func testHasMessageCell() {
        let header = app.tables.otherElements["MESSAGES"]
        let cell = app.tables.cells.elementBoundByIndex(1)
        XCTAssertGreaterThanOrEqual(cell.accessibilityFrame.minY, header.accessibilityFrame.maxY)
    }

    func testHasOtherMessageCell() {
        let header = app.tables.otherElements["MESSAGES"]
        let cell = app.tables.cells.elementBoundByIndex(2)
        XCTAssertGreaterThanOrEqual(cell.accessibilityFrame.minY, header.accessibilityFrame.maxY)
    }

}

【讨论】:

  • 很有创意,我喜欢
【解决方案2】:

Joe Masilotti 完全正确,因为无法直接从 UI 测试访问应用程序代码,但如果您想过时,可以反向通道。假设你没有。

Xcode 的 UI 测试框架可以访问所有 Swift 语言以及应用程序的 UI 层次结构,但不能访问数据层;因此您可以执行以下操作:

  • 为包含索引组件(例如 photos.headers_0 等)的 tableview 部分的页眉或页脚提供accessibilityIdentifiers
  • 完成后,使用条件来确定节数
  • 同样,photos.section_0.cell_0 可以在您的数据源中分配,迭代器 + 条件可以存储第 0 节或任何其他节中的单元格数。

【讨论】:

    猜你喜欢
    • 2015-12-10
    • 1970-01-01
    • 2015-12-13
    • 1970-01-01
    • 2016-01-03
    • 2015-10-14
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多