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

ありがとうございました!