インスタンスメソッド


scopeProvider(for:testCase:)


指定されたテストとオプションのテストケースのこの特性のスコーププロバイダーを取得します。


Swift 6.1+ Xcode 16.3+

func scopeProvider(
    for test: Test,
    testCase: Test.Case?
) -> Self.TestScopeProvider?

必須 デフォルトの実装が提供されます。





パラメータ


test

スコーププロバイダーが要求されているテスト。


testCase

スコーププロバイダが要求されているテストケース(存在する場合)。test がスイートを表す場合、この引数の値は nil になります。



戻り値


TestScopeProvider に準拠した値で、test または testCase にカスタムスコープを提供するために使用します。特性がテストまたはテストケースにカスタムスコープを提供していない場合は nil を返します。


議論


この特性の型が TestTrait に準拠している場合、このメソッドによって返されるデフォルト値は testtestCase の値によって異なります。


  • test がスイートを表す場合、この特性は SuiteTrait に準拠しなければなりません。このスイートの特性の isRecursive プロパティの値が true の場合、このメソッドは nil を返し、スイートの特性はテストスイートに含まれる各テスト関数に対してカスタムスコープを 1 回提供します。isRecursive の値が false の場合、このメソッドは self を返し、スイートの特性はテストスイート全体に対してカスタムスコープを 1 回提供します。

  • test がテスト関数を表す場合、この特性は TestTrait にも準拠します。testCasenil の場合、このメソッドは nil を返し、それ以外の場合は self を返します。つまり、デフォルトでは、テスト関数に適用または継承された特性は、その関数の各ケースに対してカスタムスコープを 1 度だけ提供します。

  • 特性はこのメソッドをオーバーライドすることで、上記のデフォルトの動作をさらにカスタマイズできます。例えば、特性がスイートごとに 1 回、またそのスイート内のテスト関数ごとに 1 回、カスタムテストスコープを提供する必要がある場合、これらの条件で nil 以外のスコーププロバイダを返すメソッドを実装します。


    特性は、このメソッドを実装し、特定のテストにカスタムスコープを提供する必要がないと判断した場合、たとえそのテストに特性が適用されていても、実行時に nil を返すことができます。これにより、provideScope(for:testCase:performing:) の不要な呼び出しを回避することで、パフォーマンスを向上させ、診断をより明確にすることができます。


    この特性の型が TestTrait に準拠しておらず、関連した TestScopeProvider 型がデフォルトの Never である場合、このメソッドはデフォルトで nil を返します。つまり、この特性のインスタンスは、適用先のテストに対してカスタムスコープを提供しません。





    デフォルトの実装


    特性の実装


    func scopeProvider(for: Test, testCase: Test.Case?) -> Never?

    指定されたテストまたはテストケースのこの特性のスコーププロバイダーを取得します。


    func scopeProvider(for: Test, testCase: Test.Case?) -> Self?

    指定されたテストとオプションのテストケースのこの特性のスコーププロバイダーを取得します。


    func scopeProvider(for: Test, testCase: Test.Case?) -> Self?

    指定されたテストまたはテストケースのこの特性のスコーププロバイダーを取得します。





    以下も見よ


    テストまたはスイートの前後にコードを実行する


    protocol TestScoping

    テストスイートまたはテスト関数を実行する前後にカスタムコードを実行するようにテストランナーに指示するプロトコル。


    associatedtype TestScopeProvider : TestScoping = Never

    この特性のテストスコーププロバイダーの型。

    必須


    func prepare(for: Test) async throws

    この特性を持つテストを実行する準備をします。

    必須 デフォルトの実装が提供されます。














    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ