Ho un banco di prova per una vista collezione che funziona così:cellule errati contare per la vista raccolta in UI Test
func testDeleteItem() {
app.collectionViews.staticTexts["Item"].tap()
app.buttons["Delete"].tap()
XCTAssertEqual(app.collectionViews.cells.count, 2)
XCTAssertFalse(app.collectionViews.cells.staticTexts["Item"].exists)
}
Dopo il rubinetto, c'è un nuovo schermo con il tasto di cancellazione. Toccando il pulsante, lo schermo si chiude da solo e ricarica la vista raccolta. Tutto funziona come previsto nell'interfaccia utente, ma ottengo entrambi gli insuccessi. Nel primo conteggio è ancora 3 e nel secondo elemento esiste ancora.
Modifica: Ho creato questo simple example on GitHub per presentare il bug.
vedo prova simulatore come va e dovrebbe essere ok. Le schermate mostrano anche 2 elementi rimanenti.Ho pensato che potesse fallire perché non aspetta di finire di licenziare lo schermo, ma 'expectationForPredicate' con' waitForExpectationsWithTimeout' ha esito negativo. –
I registri non mostrano nulla fuori servizio. –
Anche questo test fallisce, quando la cella viene cancellata direttamente su 'collectionView: didSelectCell:', inserendo il vecchio asserito 'dispatch_async' i test passano. Non sembra essere una soluzione adeguata, ma sottolinea anche il threading. Interessante –