3
UITest 코드를 단순화하려고합니다. 지금은 세 개의 텍스트 필드가있는 테이블 행을 최대 8 개까지 검사 할 수있는 수백 줄의 코드가 있습니다. 이렇게하면 코드 줄 수가 줄어들뿐만 아니라 복사/붙여 넣기/편집 프로세스로 인한 오류를 줄일 수 있습니다.스위프트 3 - 함수가 아닌 유형 'XCUIElement'의 값을 호출 할 수 없습니다.
checkRow 함수의 세 줄에 "함수 유형이 아닌 'XCUIElement'값을 호출 할 수 없습니다. 오류가 발생합니다.
세 줄의 'thisRow'변수를 정수로 바꾸면 코드가 컴파일됩니다.
전후입니다.
func checkRow(thisRow: Int, thisAward: String, thisPoints: String, thisDefeated: String) {
XCTAssert(app.tables.cells.element(boundBy: thisRow).staticTexts[thisAward].exists)
XCTAssert(app.tables.cells.element(boundBy: thisRow).staticTexts[thisPoints].exists)
XCTAssert(app.tables.cells.element(boundBy: thisRow).staticTexts[thisDefeated].exists)
}
func testAkcCh() {
navConfig.tap()
pickCD.adjust(toPickerWheelValue: "4")
pickCB.adjust(toPickerWheelValue: "5")
pickSD.adjust(toPickerWheelValue: "3")
pickSB.adjust(toPickerWheelValue: "2")
XCTAssert(app.tables.cells.count == 8)
checkRow(0, "Best of Breed", p5, d13)
checkRow(1, "Best of Opposite Sex", p5, d06)
}
이 컴파일하지만 이익의 대부분을 패배로
func testAkcCh() {
navConfig.tap()
pickCD.adjust(toPickerWheelValue: "4")
pickCB.adjust(toPickerWheelValue: "5")
pickSD.adjust(toPickerWheelValue: "3")
pickSB.adjust(toPickerWheelValue: "2")
XCTAssert(app.tables.cells.count == 8)
XCTAssert(app.tables.cells.element(boundBy: 0).staticTexts["Best of Breed"].exists)
XCTAssert(app.tables.cells.element(boundBy: 0).staticTexts[p5].exists)
XCTAssert(app.tables.cells.element(boundBy: 0).staticTexts[d13].exists)
XCTAssert(app.tables.cells.element(boundBy: 1).staticTexts["Best of Opposite Sex"].exists)
XCTAssert(app.tables.cells.element(boundBy: 1).staticTexts[p5].exists)
XCTAssert(app.tables.cells.element(boundBy: 1).staticTexts[d06].exists)
}
...
func checkRow(thisRow: Int, thisAward: String, thisPoints: String, thisDefeated: String) {
XCTAssert(app.tables.cells.element(boundBy: 0).staticTexts[thisAward].exists)
XCTAssert(app.tables.cells.element(boundBy: 0).staticTexts[thisPoints].exists)
XCTAssert(app.tables.cells.element(boundBy: 0).staticTexts[thisDefeated].exists)
}
: 또는
또는를 같이
UInt
에thisRow
변환 :내 생각 엔 당신이
UInt
에thisRow
매개 변수의 유형을 변경할 필요가있다 고맙습니다! 나는 아직도 배울 것이 많다 !! –Swift 4로 업데이트되었고 코드 변경없이 동일한 오류가 다시 발생하기 시작했습니다. Uint (xxx)를 제거해야했습니다. XCTAssertFalse (app.tables.cells.element (boundBy : thisRow) .exists) –
사과처럼 보이며 Swift 4로 'UInt'에서 'Int'로 서명을 변경했습니다. 'func element (boundBy index : Int) -> XCUIElement ' – d4Rk