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
0
260
Swiftの単体テスト事情
24卒のFlutter&iOSエンジニアです。現在WinTicketでFlutterエンジニアをしています。
CyberAgent
PRO
June 03, 2024
Tweet
Share
More Decks by CyberAgent
See All by CyberAgent
マッチングアプリにおけるユーザー構成の変化は、事業KPIにどう影響しているのか
cyberagentdevelopers
PRO
1
21
Geo-Experiments : ABEMAはなぜ新しい宣伝の効果検証にチャレンジするのか
cyberagentdevelopers
PRO
1
19
ABEMA NEWSにおける PoCをAIプロダクト化する ビジネスリードエンジニアリング
cyberagentdevelopers
PRO
0
170
チーム開発の基礎_研究を事業につなげるために
cyberagentdevelopers
PRO
8
4.8k
生成AIの研究活用_AILab2025研修
cyberagentdevelopers
PRO
12
6.9k
生成AIを活用したデータ分析でいまできること
cyberagentdevelopers
PRO
2
430
IBC 2025 動画技術関連レポート / IBC 2025 Report
cyberagentdevelopers
PRO
2
480
2025年度 生成AI 実践編
cyberagentdevelopers
PRO
8
1k
LLMを用いたメタデータベースレコメンド検証
cyberagentdevelopers
PRO
6
2.2k
Other Decks in Programming
See All in Programming
Agent Skills Workshop - AIへの頼み方を仕組み化する
gotalab555
15
8.9k
コーディングルールの鮮度を保ちたい / keep-fresh-go-internal-conventions
handlename
0
200
Claude Codeセッション現状確認 2026福岡 / fukuoka-aicoding-00-beacon
monochromegane
4
430
S3ストレージクラスの「見える」「ある」「使える」は全部違う ─ 体験から見た、仕様の深淵を覗く
ya_ma23
0
620
Goの型安全性で実現する複数プロダクトの権限管理
ishikawa_pro
2
360
ふつうのRubyist、ちいさなデバイス、大きな一年 / Ordinary Rubyists, Tiny Devices, Big Year
chobishiba
1
460
encoding/json/v2のUnmarshalはこう変わった:内部実装で見る設計改善
kurakura0916
0
420
エラーログのマスキングの仕組みづくりに役立ったASTの話
kumoichi
0
230
GC言語のWasm化とComponent Modelサポートの実践と課題 - Scalaの場合
tanishiking
0
110
RubyとGoでゼロから作る証券システム: 高信頼性が求められるシステムのコードの外側にある設計と運用のリアル
free_world21
0
300
Windows on Ryzen and I
seosoft
0
300
メタプログラミングで実現する「コードを仕様にする」仕組み/nikkei-tech-talk43
nikkei_engineer_recruiting
0
190
Featured
See All Featured
Evolving SEO for Evolving Search Engines
ryanjones
0
150
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
30 Presentation Tips
portentint
PRO
1
250
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
460
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.5k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
210
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Visualization
eitanlees
150
17k
The Limits of Empathy - UXLibs8
cassininazir
1
260
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
71
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なので、今後に期待
ありがとうございました!