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
ぼっち開発でもテストがしたい! ~導入編~
Search
Yutaro Muta
January 19, 2017
Technology
2.9k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ぼっち開発でもテストがしたい! ~導入編~
iOS Test Night #2 (
https://testnight.connpass.com/event/45717/
) で話しました
Yutaro Muta
January 19, 2017
More Decks by Yutaro Muta
See All by Yutaro Muta
`t*(42&t>>10)`だけで音楽が鳴る、Swiftで実装するBytebeat / iOSDC Japan 2026
yutailang0119
0
190
WebKit::WebView Essentials / Sapporo.swift #1
yutailang0119
0
340
SwiftUI Inspectorが難しすぎる / Mobile Act OSAKA 18
yutailang0119
0
170
Google Nest CamとApple Vision frameworkと猫🐈🐈⬛ / onishi50
yutailang0119
0
450
Swift Concurrencyでのスケジュール処理を考える / Mobile Act OSAKA 17
yutailang0119
0
170
猫と暮らすネットワークカメラ生活🐈 ~Vision frameworkでペットを愛でよう~ / iOSDC Japan 2025
yutailang0119
0
510
猫と暮らす Google Nest Cam生活🐈 / WebRTC with Google Nest Cam
yutailang0119
0
360
Swiftの “private” を テストする / Testing Swift "private"
yutailang0119
0
370
Apple Vision Pro購入RTA 1泊3日弾丸ハワイツアー / RTA: Purchase Apple Vision Pro in Hawaii
yutailang0119
0
1.6k
Other Decks in Technology
See All in Technology
『SAR衛星データ解析入門』のご紹介とその応用
syuchimu
0
120
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
930
Post AI時代のリファクタリング実践記 / Refactoring in the post AI era
kaminashi
1
280
オントロジーって 結局なにもの? AI エージェントに「意味」を渡す知識設計の話
greenmidori
0
230
Code for Security プロジェクト紹介 2026年10月
yu23ki14
0
110
DBについての基礎説明(MySQL編) - コロプラ 2026年度 新卒研修
colopl
0
130
ブラウザとサーバーから考えるAI時代のフロントエンド監視
shogo4131
3
1k
触りたくないデータに、どう触るか AI時代のRBACアクセスガバナンス
ivry_presentationmaterials
0
280
二歩目のフロントエンド・ウェブアクセシビリティ
camiha
2
660
初海外で注意すべきこと12選!!!安全快適なre:invent生活にするために
yuuuuuuu168
1
180
Local CI × GitHub Actions
gogutan
3
230
React改造してみた
tsukina_7mochi
0
110
Featured
See All Featured
Utilizing Notion as your number one productivity tool
mfonobong
4
620
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Leo the Paperboy
mayatellez
10
2.4k
Music & Morning Musume
bryan
48
7.4k
Paper Plane (Part 1)
katiecoart
PRO
2
12k
Mobile First: as difficult as doing things right
swwweet
225
10k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Balancing Empowerment & Direction
lara
6
1.3k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
480
Docker and Python
trallard
47
4.2k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
450
Speed Design
sergeychernyshev
33
2.2k
Transcript
΅ͬͪ։ൃͰςετΛ͍ͨ͠! ~ಋೖฤ~ 2017/01/19_iOS Test Night #2 Yutaro Muta (@yutailang0119)
Who am I ? • ໂా ༟ଠ (@yutailang0119) • iOS
App Developer • ΞϥΠυΞʔΩςΫπגࣜձࣾ • PyCon JP 2016, 2017 ελοϑ • builderscon 2017 ελοϑ (εϙϯαʔืूதʂ) • ࠷ۙPlayground͕͖
None
ίʔυग़͖ͯ·ͤΜ
ϘΫͷςετϨϕϧ • JUnitͱ͔शͬͨ • Objective-CͷࠒʹXCTestΛॻ͍ͯͨ • ࠓͷϓϩδΣΫτʹςετίʔυ͕ͳ͍ • XXXTests/XXXTests.swift •
XXXUITests/XXXUITests.swift ͕͋Δ͚ͩ
“͋͘·Ͱ” Πϝʔδ
@testable import ͕Ͱ͖ͳ͍… (ͳΜͯ͜ͱ)
Goal • “΅ͬͪͰ” ςετΛॻ͘ϞνϕʔγϣϯΛ ্͛Δ • ʑͷෛ୲ΛݮΒ͢
Agenda • ςετΛ͡ΊΔͨΊͷΠϩϋ • ͜ͷςεςΟϯάϑϨʔϜϫʔΫ͕͜͜ϋϚΓͲ͜Ζ • ςεςΟϯάϑϨʔϜϫʔΫΛ͜͏͍͚͍ͬͯͯΔ • ͜͏ͬͯͯ͠ςετ͍ͯ͠Δ •
ΦϨ͕ߟ͑ΔiOSΞϓϦʹ͓͚ΔςελϏϦςΟͷߴ͍ઃܭ • ࠓɺ͜ͷCI͕͍ • ฐࣾͷCI/CDڥ͜Μͳײ͡ʹ͍ͯ͠Δ iOS Test Night connpassϖʔδ ΑΓ
Agenda • ςετΛ͡ΊΔͨΊͷΠϩϋɹతͳԿ͔ • ͜ͷςεςΟϯάϑϨʔϜϫʔΫ͕͜͜ϋϚΓͲ͜Ζ • ςεςΟϯάϑϨʔϜϫʔΫΛ͜͏͍͚͍ͬͯͯΔ • ͜͏ͬͯͯ͠ςετ͍ͯ͠Δ •
ΦϨ͕ߟ͑ΔiOSΞϓϦʹ͓͚ΔςελϏϦςΟͷߴ͍ઃܭ • ࠓɺ͜ͷCI͕͍ • ฐࣾͷCI/CDڥ͜Μͳײ͡ʹ͍ͯ͠Δ iOS Test Night connpassϖʔδ ΑΓ
ࣾͰͷΓऔΓ
ςετΛॻ͖·͠ΐ͏ɻ ॻ͍ͯͨΓલͰ͢ΑͶʁ ςετॻ͘Ί͏
ςετΛॻ͖·͠ΐ͏ɻ ॻ͍ͯͨΓલͰ͢ΑͶʁ ςετॻ͘Ί͏ Web (PHPJava) ͷίϯςΩετͰޠΒΕ͍ͯΔ (߹͕ଟ͍)
ςετΛॻ͖·͠ΐ͏ɻ ॻ͍ͯͨΓલͰ͢ΑͶʁ ςετॻ͘Ί͏ ࠓͷϓϩδΣΫʹXCTestͷڥ͢ΒͰ͖͍ͯͳ͔ͬͨঢ়ଶ
Issues • ։ൃεϐʔυ͕࠷༏ઌ • ͕औΕͳ͍ • ϊϋ͕ͳ͍ • ࣮࣭ࣗ1ਓ •
ࣗಈςετͷڥ͕ͳ͍ • पғͱͷԹࠩ
ςετΛॻ͖࢝ΊΔ·Ͱͷ (ڥత && ৺ཧత) ϋʔυϧ͕ߴ͍
ͦͦͳΜͰςετΛ ॻ͘Μ͚ͩͬʁ
୯ମςετͷಛ • ૣظʹΛൃݟ͢Δ • มߋΛ༰қʹ͢Δ • ౷߹ͷ؆ૉԽ • υΩϡϝϯτ •
ઃܭ Wikipedia <https://ja.wikipedia.org/wiki/୯ମςετ> ΑΓ
ݸਓతʹϝϦοτʹײ͡Δ͜ͱ • ࣭ΛΑ͘͢ΔͨΊͷखॿ͚ʹͳΔ • ෛ୲ΛܰݮͰ͖Δ • ࣮࣌ɺมߋ࣌ͷෛ୲ • ৺ཧతෛ୲
ςετΛॻ͖࢝ΊΔ·Ͱͷ (ڥత && ৺ཧత) ϋʔυϧ͕ߴ͍ ෛ୲ʹͳͬͯΔ
ͱ͍͑… • ࢝ΊΔ͜ͱʹΑΔϝϦοτେ͖͍ͣ • ࠷ۙςετॻ͍ͯͳ͍ํ͕ϚΠϊϦςΟͳؾ ͕…
iOS Test Night #1 Ͱ ͍Ζ͍Ζฉ͍͖ͯͨ͠ɺ ࢝ΊΔͳΒࠓ•̀ . ̫•́✧
΅ͬͪ։ൃ͚ͩͲɺ ςετΛॻ͜͏
Ͳ͔͜ΒςετΛॻ͔͘ʁ • ·ͣϢχοτςετ͔Β 1. جຊܕͷExtensions 2. Model 3. ͦͷޙɺControllerͱ͔ •
UIςετͷݟ͍ͩ͘͞
Ͳ͔͜ΒςετΛॻ͔͘ʁ • ·ͣϢχοτςετ͔Β 1. جຊܕͷExtension <- ͱΓ͋͑ͣ͜͜Ͱ͖ͨ 2. Model 3.
ͦͷޙɺControllerͱ͔ • UIςετͷݟ͍ͩ͘͞
جຊܕͷExtensionͷςετ • Ͳ͜ͰΘΕΔॲཧͳͷ͔Λݟ͢ • ࣮࣌Ͱߟྀ͍ͯͨ͠ͷ͔ෆ໌ྎͳ͜ͱ͕ ग़ͯདྷΔ • Stringૢ࡞ͷ࣌ʹɺֆจࣈͷߟྀ͚ͨͬ͠ʁ • ࣦഊ͖͢ύλʔϯʁ
-> ࣮ࣗମ͕ؒҧ͍ͬͯΔͷͰʁ • UIKitܥ·ͩ
ͦͷଞͬͨ͜ͱ
fastlane • Ͳ͜ͷษڧձͰʮ͍͍ΑʂʯͱݴΘΕΔͷͰ • CIಋೖͷੴʹ • (ࠓͷͱ͜Ζ) ςετΑΓcrashlytics, deliver ͷԸܙ͕େ͖͍
• ਓతϛεΛݮΒͤΔ (ͣ)
• ͱΓ͋͑ͣXCTestͷڥͰ͖ͨ • গ͠Ͱςετ͕͋Δͱɺؾ࣋ͪతʹܧଓ͠ ͍͢ • ࣮Λݟ͍͍͢ػձʹͳͬͨ • ԿΑΓ৺ཧతෆ͕҆ܰݮ͞ΕΔʂʂʂʂ ·ͱΊ
࣍ճ ΅ͬͪ։ൃͰςετΛ͍ͨ͠! ~ӡ༻ฤ~
࣍ճ ΅ͬͪ։ൃͰςετΛ͍ͨ͠! ~ӡ༻ฤ~ Δ͔ʁ