マクロ


require(throws:_:sourceLocation:
performing:)


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


iOS iPadOS Mac Catalyst macOS tvOS visionOS

watchOS Swift 6.0+ Xcode 16.0+

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





パラメータ


errorType

throw されると予想されるエラーの型。expression が全てのエラーを throw する可能性がある、または throw されたエラーの特定の型が重要でない場合は、(any Error).self を渡して下さい。


comment

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


sourceLocation

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


expression

評価されるべき式。



戻り値


expression によって throw された errorType のインスタンス。



以下で言及


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



概観


Throws が一致するエラーを throw しない場合、ExpectationFailedError のインスタンス。expression によって throw されたエラーは再び throw されません。


expression 式が与えられた型ののエラーを throw する必要がある場合は、#require() のこのオーバーロードを使用して下さい。


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

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


注意

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


throw されたエラーが Error の別のインスタンスと等しくなるだけでよい場合は、代わりに require(throws:_:sourceLocation:performing:) を使用してください。


expression が決して throw する必要がない場合は、このマクロを使用せずにコードを単に呼び出してください。エラーが throw された場合、テストは失敗します。





以下も見よ


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


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

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


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

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


macro expect<E, R>(throws: E, @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, @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 します。

  廃止  














トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ