読者です 読者をやめる 読者になる 読者になる

ほげほげ(仮)

仮死状態

XCTestでthrowsをテストする

Swift

環境

テスト対象コード

テストの対象となるサンプルコードです。

エラータイプの定義です。

enum SampleError: ErrorType {
    case Invalid
    case Unknown
}

エラーをthrowするコードです。

class Sample {
    static func exec() throws {
        throw SampleError.Invalid
    }
}

テスト

throwされたかをテストする

エラーがthrowされた場合はテストはパスします。もしthrowされなかった場合はテストは失敗します。エラーのタイプなんでもいいです。

XCTAssertThrowsError(try Sample.exec())

throwされたエラーもテストする

Closure内でエラーが期待しているものかをXCTAssertEqualを使ってテストします。もし、違うタイプのエラーの場合はテストは失敗します。

XCTAssertThrowsError(try Sample.exec()) { error in
    XCTAssertEqual(error as? SampleError, SampleError.Invalid)
}