記事


テスト関数の定義


コードが正しく動作していることを検証するためのテスト関数を定義します。





概観


Swift パッケージまたはプロジェクトのテスト関数を定義するのは簡単です。



テストライブラリをインポートする


テストライブラリをインポートするには、テストを含む Swift ソースのファイルに以下のコードを追加します。


import Testing

注意

テストライブラリはテストターゲットにのみインポートしてください。テストライブラリをアプリケーション、ライブラリ、またはバイナリターゲットにインポートすることはサポートされておらず、推奨もされていません。リリースビルド時にバイナリからテスト関数が削除されないため、テスト関数を含むビルド製品を検査するすべての人がテストのロジックとフィクスチャを参照できる可能性があります。



テスト関数を宣言する


テスト関数を宣言するには、引数を取らない Swift 関数宣言を記述し、その名前の前に @Test 属性を付けます。


@Test func foodTruckExists() {
  // Test logic goes here.
}

このテスト関数は、ファイルスコープまたは型内に含めることができます。テスト関数を含む型は自動的に テストスイート となり、オプションで @Suite 属性を付与できます。スイートの詳細については、スイートの型によるテスト関数の整理 をご覧ください。


この関数は有効なテスト関数ですが、実際には何も実行せず、コードをテストするわけでもありません。テスト関数で期待される値や結果を確認するには、テスト関数に expectations (期待値) (Expectations and confirmations)を追加してください。



テストの名前をカスタマイズする


IDE またはコマンドラインに表示されるテスト関数の名前をカスタマイズするには、@Test 属性への引数として文字列リテラルを指定します。


@Test("Food truck exists") func foodTruckExists() { ... }


テスト関数の外観と動作をさらにカスタマイズするには、tags(_:) などの traits (特性) を使用します。



同時実行テストまたは throw するテストを記述する


他の Swift 関数と同様に、テスト関数に asyncthrows をそれぞれ付与することで、それぞれ同時実行または throw する注釈を付与できます。テストがメインアクターの実行コンテキスト (つまり、プロセスのメインスレッド) 内でのみ安全に実行できる場合は、@MainActor 注釈を付与できます。


@Test @MainActor func foodTruckExists() async throws { ... }


テストの利用可能性を制限する


テスト関数がオペレーティングシステムまたは Swift 言語の新しいバージョンでのみ実行可能な場合は、宣言時に @available 属性を使用します。@available 属性の message 引数を使用して、使用可能性の制限によりテストを実行できない場合にログに記録するメッセージを指定します。


@available(macOS 11.0, *)
@available(swift, introduced: 8.0, message: "Requires Swift 8.0 features to run")
@Test func foodTruckExists() { ... }




以下も見よ


必須


スイートの型によるテスト関数の整理

テストをテスト スイートに整理します。


XCTest からのテストの移行 (Migrating a test from XCTest)

XCTest を使用して記述された既存のテストメソッドまたはテストクラスを移行します。


macro Test(String?, any TestTrait...)

テストを宣言します。


struct Test

テストまたはスイートを表す型。


macro Suite(String?, any SuiteTrait...)

テストスイートを宣言します。














トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ