Wie schreibt man Tests für Swift-Methoden, die Vorbedingungen haben? Hier ein Beispiel:Testen von Swift-Code mit Vorbedingungen
func doublePositive(n:Int) -> Int {
precondition(n >= 0)
return 2*n
}
XCTAssertThrowsError
Mit funktioniert nicht:
func testDoublePositive() {
XCTAssertEqual(10, testObject.doublePositive(5)) // Works
XCTAssertThrowsError(testObject.doublePositive(-1)) // Breaks
}
Dies erzeugt einen Fehler, wenn die Durchführung des Tests:
Gewinde 1: EXEC_BAD_INSTRUCTION (Code = EXCI386_INVOP, Subcode = 0x0)
Gibt es eine Möglichkeit, Precondi zu testen von Swift?
es gibt keinen Standard Weg, um Fehler in der Vorbedingung zu "fangen", es wird immer das Programm stoppen, es gibt jedoch einige Verbesserungen, schauen Sie sich http://www.cocoaithllove.com/blog/2016/02/02 /partial-functions-part-two-catching-precondition-failures.html – ogres
@ogres Wow, das ist ein schöner Artikel, danke! – dasblinkenlight
Ich kann es kaum erwarten, dies in Nicht-Test-Code zu sehen. Ich bin froh, dass du damit testen kannst, was du versuchst zu testen, aber ich hasse diese Website ... weil ich garantiere, dass jemand dies in ihren Hauptziel und verworfenen Threads implementiert, nur um zu verhindern, dass die App abstürzt ... (Und ich sage das, weil ich es für ihren ähnlichen Objective-C-Artikel gesehen habe ...) – nhgrif