Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Swiftの単体テスト事情
Search
CyberAgent
PRO
June 03, 2024
Programming
290
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Swiftの単体テスト事情
24卒のFlutter&iOSエンジニアです。現在WinTicketでFlutterエンジニアをしています。
CyberAgent
PRO
June 03, 2024
More Decks by CyberAgent
See All by CyberAgent
AIを使った広告商品の開発と評価設計の話
cyberagentdevelopers
PRO
1
51
動画広告の効果を技術で改善
cyberagentdevelopers
PRO
1
57
なぜWINTICKETはマイクロサービスをやめたのか
cyberagentdevelopers
PRO
2
82
”AIを使う” から ”AIに任せる” へ ─ 開発プロセスを再設計してAIを組織標準にするまで
cyberagentdevelopers
PRO
2
420
Databricks 導入から Genie 活用まで、全部やった話
cyberagentdevelopers
PRO
0
1.9k
専任DEゼロからの データ基盤構築 - Databricks x IaC x AIで 進める「データの民主化」-
cyberagentdevelopers
PRO
1
1.4k
「エンジニア進化論」2028年の開発完全自動化、エンジニアはどう進化するか
cyberagentdevelopers
PRO
10
10k
NAB Show 2026 動画技術関連レポート / NAB Show 2026 Report
cyberagentdevelopers
PRO
1
750
Local LLM Meetup #1 Opening
cyberagentdevelopers
PRO
1
570
Other Decks in Programming
See All in Programming
残高管理から台帳サービスへの進化
artoy
1
200
Kotlinの15年とServer-Side Kotlin
n_takehata
1
150
ジョジョの世界をXRで再現する
mofurune
0
160
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
35
17k
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
6.6k
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
1
430
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
170
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.7k
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
270
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
890
Web Framework Benchmark Battle 2026, Any%
a_matsuda
2
2.1k
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
142
7.8k
Making the Leap to Tech Lead
cromwellryan
135
10k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
260
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
490
Code Review Best Practice
trishagee
74
20k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
550
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Skip the Path - Find Your Career Trail
mkilby
1
260
Optimizing for Happiness
mojombo
378
71k
Transcript
Swift Testing CA.swift 5/30 naruogram
自己紹介 株式会社WinTicket 新卒入社 名前: なるお 技術: Flutter, Swift X: @naruogram
GitHub: @naruogram
はじめに
Swift Testingを調査した背景 - 研修メンバーに、Swift経験者がほとんどいなかった ため、直感的にテストを書きたいと思った - XCTestの学習コストが高い
目次 - Swift Testingについて - Swift Testing 特徴と活用
Swift Testingについて
Swift Testing Appleが発表したUnit Testライブラリ 強力で表現力豊かな機能を備えた、Swift 用の最新のオー プンソース テスト ライブラリです。(※公式説明より抜粋) ※
Swift5.9から対応 ※ Xcodeには統合されていない 参照元: https://github.com/apple/swift-testing
Swift Testing 特徴 - 柔軟で簡単 - カスタマイズ - 拡張性
Swift Testing 特徴と活用
Swift Testing 特徴1: 柔軟で簡単
Swift Testing 特徴1: 柔軟で簡単 テスト宣言したい場合: @Testを使用 テスト検証したい場合: #expectを使用
Swift Testing 特徴1: 柔軟で簡単 nilの場合にテストを失敗させたい場合: #requireを使用する requireがあることにより失敗の原因特定スピード向上します
Swift Testing 特徴1: 柔軟で簡単 テストのグループ化をしたい場合: @Suite
Swift Testing 特徴1: 柔軟で簡単 Concurrencyに関連するテスト XCTestと比較し、より簡単に記述が可能
Swift Testing 特徴2: カスタマイズ
Swift Testing 特徴2: カスタマイズ Traitsについて テストに特性を追加して注釈を付けたり、 動作をカスタマイズしたりします。
Swift Testing 特徴2: カスタマイズ Traitsを組み合わせることで柔軟なテストへ
Swift Testing 特徴2: カスタマイズ キャンペーンを実施している時のみ テストしたい場合
Swift Testing 特徴2: カスタマイズ Traitsの.enableを使用することで可能になる enableはif文を使ってテストの実行可否を決めれる
Swift Testing 特徴2: カスタマイズ CI等でテストが失敗した時に ログを残したい場合
Swift Testing 特徴2: カスタマイズ 失敗時のログに残すための表示方法
Swift Testing 特徴2: カスタマイズ 特定のバグをテストに関連付けたい場合
Swift Testing 特徴2: カスタマイズ Traitの.bugを使用し、関連付けをする。 明示的にバグで落ちてることがわかる
Swift Testing 特徴2: カスタマイズ Bug RelationShip種類 .uncoveredBug: バグが発見された時 .reproducesBug: 以前からのバグを実証する時
.verifiesFix: バグが修正され、バグが再現されない時 .failingBecauseOfBug: 無関係なバグが発生した時 .unspecified: その他
Swift Testing 特徴2: カスタマイズ 一時的に特定のテストを実行したくない場合
Swift Testing 特徴2: カスタマイズ テストの重要度を分類したい場合
Swift Testing 特徴2: カスタマイズ Traitのtagsを使用することで分類化 明示的にテストの重要度などを表現できる
Swift Testing 特徴3: 拡張性
Swift Testing 特徴3: 拡張性 引数のみを切り替えて テストを実行したい場合 (パラメタライズドテスト)
Swift Testing 特徴3: 拡張性 引数のみを切り替えて実行するテスト メリット: 1メソッドで多くのテストケースを 網羅できる ※ デフォルトでパラメタライズドテストの
機構が含まれている
Swift Testing まとめ - XCTestに比べて、より簡単にできる - 最近のSwiftの機能により順応している - Swift TestingはBetaなので、今後に期待
ありがとうございました!