マクロ


expect(throws:_:sourceLocation:
performing:)


式が常に特定のエラーを throw することを確認します。


iOS iPadOS Mac Catalyst macOS tvOS visionOS

watchOS Swift 6.0+ Xcode 16.0+

@discardableResult @freestanding(expression)
macro expect<E, R>(
    throws error: E,
    _ comment: @autoclosure () -> Comment? = nil,
    sourceLocation: SourceLocation = #_sourceLocation,
    performing expression: () async throws -> R
) -> E? where E : Equatable, E : Error





パラメータ


error

throw されると予想されるエラー。


comment

期待を説明するコメント。


sourceLocation

記録された期待と問題の原因となるソースの場所。


expression

評価されるべき式。



戻り値


期待値が渡たされた場合、expression によって throw された E のインスタンス。期待が失敗した場合、結果は nil になります。



以下で言及


Swift コード内のエラーのテスト



概観


expression 式が特定のエラーを throw すべき 場合は、#expect() のこのオーバーロードを使用します。


#expect(throws: EngineFailureError.batteryDied) {
  FoodTruck.shared.engine.batteryLevel = 0
  try FoodTruck.shared.engine.start()
}

expression がエラーを throw しない場合、または error と等しくないエラーを throw した場合、現在のタスクで実行中のテストに対して Issue が記録されます。expression によって返される値はすべて破棄されます。


注意

このマクロを Swift コンパイラのバージョン 6.1 未満で使用すると、値は返されません。


throw されたエラーが特定の型のインスタンスのみである必要がある場合は、代わりに expect(throws:_:sourceLocation:performing:) を使用して下さい。






以下も見よ


エラーが throw されたか確認する


Swift コード内のエラーのテスト

コードがあなたの期待どおりにエラーを処理することを確認します。


macro expect<E, R>(throws: E.Type, @autoclosure () -> Comment?, sourceLocation: SourceLocation, performing: () async throws -> R) -> E?

式が常に与えられた型のエラーを throw することを確認します。


macro expect<R>(@autoclosure () -> Comment?, sourceLocation: SourceLocation, performing: () async throws -> R, throws: (any Error) async throws -> Bool) -> (any Error)?

式が常に何らかの条件に一致するエラーを throw することを確認します。

  廃止  


macro require<E, R>(throws: E.Type, @autoclosure () -> Comment?, sourceLocation: SourceLocation, performing: () async throws -> R) -> E

式が常に与えられた型のエラーを throw することを確認し、そうでない場合はエラーを throw します。


macro require<E, R>(throws: E, @autoclosure () -> Comment?, sourceLocation: SourceLocation, performing: () async throws -> R) -> E


macro require<R>(@autoclosure () -> Comment?, sourceLocation: SourceLocation, performing: () async throws -> R, throws: (any Error) async throws -> Bool) -> any Error

式が常に何らかの条件に一致するエラーを throw することを確認し、そうでない場合はエラーを throw します。

  廃止  














トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ