前提条件を持つスウィフトメソッドのテストを書く方法を教えてください。ここでの例である:前提条件付きスウィフトコードのテスト
func doublePositive(n:Int) -> Int {
precondition(n >= 0)
return 2*n
}
XCTAssertThrowsError
を使用して動作しない。
func testDoublePositive() {
XCTAssertEqual(10, testObject.doublePositive(5)) // Works
XCTAssertThrowsError(testObject.doublePositive(-1)) // Breaks
}
テストを実行しているときは、このエラーが生成:
スレッド1:EXEC_BAD_INSTRUCTION(コード= EXCI386_INVOP、サブコード= 0x0)
precondiをテストする方法はありますかスウィフトの数々?
前提条件で失敗を「キャッチ」する標準的な方法はありませんが、常にプログラムを停止しますが、いくつかの調整があります。http://www.cocoawithlove.com/blog/2016/02/02 /partial-functions-part-toto-catching-precondition-failures.html – ogres
@ogresうわー、いい記事です、ありがとう! – dasblinkenlight
私はテストコードではないのを見るのを待つことができません。私はこれがあなたがテストしようとしているものをテストすることができて嬉しいですが、私はそのウェブサイトが嫌い...私はあなたの主なターゲットでこれを実装し、クラッシュからスレッドを孤立させたスレッドを孤立させるだけです(そして、私はそれが似たObjective-Cの記事で起こっているのを見ているからです) – nhgrif