Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Swiftの単体テスト事情
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
CyberAgent
PRO
June 03, 2024
Programming
270
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を使う” から ”AIに任せる” へ ─ 開発プロセスを再設計してAIを組織標準にするまで
cyberagentdevelopers
PRO
1
140
Databricks 導入から Genie 活用まで、全部やった話
cyberagentdevelopers
PRO
0
830
専任DEゼロからの データ基盤構築 - Databricks x IaC x AIで 進める「データの民主化」-
cyberagentdevelopers
PRO
0
500
「エンジニア進化論」2028年の開発完全自動化、エンジニアはどう進化するか
cyberagentdevelopers
PRO
9
8.9k
NAB Show 2026 動画技術関連レポート / NAB Show 2026 Report
cyberagentdevelopers
PRO
0
310
Local LLM Meetup #1 Opening
cyberagentdevelopers
PRO
0
430
LocalLLMで機密データを匿名化したい
cyberagentdevelopers
PRO
1
460
Vibe Fine-Tuning Version 2 — RunPod SSH で安く学習してみた
cyberagentdevelopers
PRO
0
430
2026年度新卒技術研修 サイバーエージェントのデータベース 活用事例とパフォーマンス調査入門
cyberagentdevelopers
PRO
10
12k
Other Decks in Programming
See All in Programming
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
150
AI時代、エンジニアはどう育つのか -未経験エンジニアの成長を間近で見て考えたこと-
thasu0123
0
140
AI 輔助遺留系統現代化的經驗分享
jame2408
1
1.2k
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
180
광주소프트웨어마이스터고등학교 DevFest 특강 - 바이브 코딩 시대에서 주니어 개발자로 살아남는 방법
utilforever
1
150
Claude Team Plan導入・ガイド
tk3fftk
0
220
はてなアカウント基盤 State of the Union
cockscomb
1
1.3k
鹿野さんに聞く!『TypeScriptコードレシピ集』で磨く実践力
tonkotsuboy_com
4
1.1k
AI時代の仕事技芸論〜ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ(スクフェス仙台 2026バージョン)
kuranuki
0
690
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
110
【やさしく解説 設計編 #0】DDDのコード、読めるのに分からない人へ
panda728
PRO
2
270
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
100
Featured
See All Featured
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
240
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
380
From π to Pie charts
rasagy
0
240
Optimising Largest Contentful Paint
csswizardry
37
3.8k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
How to Ace a Technical Interview
jacobian
281
24k
Skip the Path - Find Your Career Trail
mkilby
1
170
Faster Mobile Websites
deanohume
310
32k
Being A Developer After 40
akosma
91
590k
Embracing the Ebb and Flow
colly
88
5.1k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.3k
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なので、今後に期待
ありがとうございました!