Ich bin neu in Unit-Test in Swift. Jetzt wollte ich meinen ViewController testen. In ViewDidLoad habe ich einen asynchronen Aufruf. Wenn ich meinen Controller testen möchte, wenn die Daten korrekt geladen wurden, wurden die Daten nicht geladen. Ich habe bereits gelesen, dass ich eine XCTestExpectation einbauen muss.Swift Unit Test- Warten auf viewDidLoad
So die Informationen, die ich habe, habe ich von dieser Frage: XCTest Unit Test data response not set in test after viewDidLoad
Die Antwort gibt es ein Beispiel, von dem ich weiß nicht, wie zu implementieren. Mein Test-Klasse sieht wie folgt aus:
import XCTest
@testable import apirequest
class SearchedForViewControllerTests: XCTestCase {
var vc: SearchedForViewController!
override func setUp() {
super.setUp()
let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
vc = storyboard.instantiateViewController(withIdentifier: "SearchedForViewController") as! SearchedForViewController
vc.passedString = "garten"
let _ = vc.view
}
func testArticlesShwon() {
print(vc.tableView.numberOfRows(inSection: 0))
}
}
Also, wenn ich auf meinem eigenen Code aussehen Teil viewDidLoad geschieht in
let _ = vc.view
Wenn ich in einer Erwartung aufbauen will, muss ich dafür warten Teil. Aber der Teil ist keine Funktion. Also weiß ich nicht, wie ich nach dem Laden meine Erwartungen erfüllen könnte.