×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Swift Testing CA.swift 5/30 naruogram
Slide 2
Slide 2 text
自己紹介 株式会社WinTicket 新卒入社 名前: なるお 技術: Flutter, Swift X: @naruogram GitHub: @naruogram
Slide 3
Slide 3 text
はじめに
Slide 4
Slide 4 text
Swift Testingを調査した背景 - 研修メンバーに、Swift経験者がほとんどいなかった ため、直感的にテストを書きたいと思った - XCTestの学習コストが高い
Slide 5
Slide 5 text
目次 - Swift Testingについて - Swift Testing 特徴と活用
Slide 6
Slide 6 text
Swift Testingについて
Slide 7
Slide 7 text
Swift Testing Appleが発表したUnit Testライブラリ 強力で表現力豊かな機能を備えた、Swift 用の最新のオー プンソース テスト ライブラリです。(※公式説明より抜粋) ※ Swift5.9から対応 ※ Xcodeには統合されていない 参照元: https://github.com/apple/swift-testing
Slide 8
Slide 8 text
Swift Testing 特徴 - 柔軟で簡単 - カスタマイズ - 拡張性
Slide 9
Slide 9 text
Swift Testing 特徴と活用
Slide 10
Slide 10 text
Swift Testing 特徴1: 柔軟で簡単
Slide 11
Slide 11 text
Swift Testing 特徴1: 柔軟で簡単 テスト宣言したい場合: @Testを使用 テスト検証したい場合: #expectを使用
Slide 12
Slide 12 text
Swift Testing 特徴1: 柔軟で簡単 nilの場合にテストを失敗させたい場合: #requireを使用する requireがあることにより失敗の原因特定スピード向上します
Slide 13
Slide 13 text
Swift Testing 特徴1: 柔軟で簡単 テストのグループ化をしたい場合: @Suite
Slide 14
Slide 14 text
Swift Testing 特徴1: 柔軟で簡単 Concurrencyに関連するテスト XCTestと比較し、より簡単に記述が可能
Slide 15
Slide 15 text
Swift Testing 特徴2: カスタマイズ
Slide 16
Slide 16 text
Swift Testing 特徴2: カスタマイズ Traitsについて テストに特性を追加して注釈を付けたり、 動作をカスタマイズしたりします。
Slide 17
Slide 17 text
Swift Testing 特徴2: カスタマイズ Traitsを組み合わせることで柔軟なテストへ
Slide 18
Slide 18 text
Swift Testing 特徴2: カスタマイズ キャンペーンを実施している時のみ テストしたい場合
Slide 19
Slide 19 text
Swift Testing 特徴2: カスタマイズ Traitsの.enableを使用することで可能になる enableはif文を使ってテストの実行可否を決めれる
Slide 20
Slide 20 text
Swift Testing 特徴2: カスタマイズ CI等でテストが失敗した時に ログを残したい場合
Slide 21
Slide 21 text
Swift Testing 特徴2: カスタマイズ 失敗時のログに残すための表示方法
Slide 22
Slide 22 text
Swift Testing 特徴2: カスタマイズ 特定のバグをテストに関連付けたい場合
Slide 23
Slide 23 text
Swift Testing 特徴2: カスタマイズ Traitの.bugを使用し、関連付けをする。 明示的にバグで落ちてることがわかる
Slide 24
Slide 24 text
Swift Testing 特徴2: カスタマイズ Bug RelationShip種類 .uncoveredBug: バグが発見された時 .reproducesBug: 以前からのバグを実証する時 .verifiesFix: バグが修正され、バグが再現されない時 .failingBecauseOfBug: 無関係なバグが発生した時 .unspecified: その他
Slide 25
Slide 25 text
Swift Testing 特徴2: カスタマイズ 一時的に特定のテストを実行したくない場合
Slide 26
Slide 26 text
Swift Testing 特徴2: カスタマイズ テストの重要度を分類したい場合
Slide 27
Slide 27 text
Swift Testing 特徴2: カスタマイズ Traitのtagsを使用することで分類化 明示的にテストの重要度などを表現できる
Slide 28
Slide 28 text
Swift Testing 特徴3: 拡張性
Slide 29
Slide 29 text
Swift Testing 特徴3: 拡張性 引数のみを切り替えて テストを実行したい場合 (パラメタライズドテスト)
Slide 30
Slide 30 text
Swift Testing 特徴3: 拡張性 引数のみを切り替えて実行するテスト メリット: 1メソッドで多くのテストケースを 網羅できる ※ デフォルトでパラメタライズドテストの 機構が含まれている
Slide 31
Slide 31 text
Swift Testing まとめ - XCTestに比べて、より簡単にできる - 最近のSwiftの機能により順応している - Swift TestingはBetaなので、今後に期待
Slide 32
Slide 32 text
ありがとうございました!