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
ぼっち開発でもテストがしたい! ~導入編~
Search
Yutaro Muta
January 19, 2017
Technology
0
2.7k
ぼっち開発でもテストがしたい! ~導入編~
iOS Test Night #2 (
https://testnight.connpass.com/event/45717/
) で話しました
Yutaro Muta
January 19, 2017
Tweet
Share
More Decks by Yutaro Muta
See All by Yutaro Muta
Swiftの “private” を テストする / Testing Swift "private"
yutailang0119
0
210
Apple Vision Pro購入RTA 1泊3日弾丸ハワイツアー / RTA: Purchase Apple Vision Pro in Hawaii
yutailang0119
0
1.4k
個人開発のたのしみ / Enjoying personal development
yutailang0119
0
990
バックポートして学ぶ新APIの仕組み
yutailang0119
0
2.8k
Backport AsyncImage
yutailang0119
0
710
xcrun Essentials
yutailang0119
6
1.3k
Let's Coding SwiftUI on iPad!
yutailang0119
1
510
Property Wrapperで遊ぼう / Play with Property Wrapper
yutailang0119
2
320
Back of First Screen AB test of Hatena Bookmark iOS app with Firebase AB Testing
yutailang0119
0
310
Other Decks in Technology
See All in Technology
25分で解説する「最小権限の原則」を実現するための AWS「ポリシー」大全 / 20250625-aws-summit-aws-policy
opelab
8
860
Model Mondays S2E02: Model Context Protocol
nitya
0
200
プロダクトエンジニアリング組織への歩み、その現在地 / Our journey to becoming a product engineering organization
hiro_torii
0
110
ユーザーのプロフィールデータを活用した推薦精度向上の取り組み
yudai00
0
500
実践! AIエージェント導入記
1mono2prod
0
150
成立するElixirの再束縛(再代入)可という選択
kubell_hr
0
960
新卒3年目の後悔〜機械学習モデルジョブの運用を頑張った話〜
kameitomohiro
0
400
Agentic Workflowという選択肢を考える
tkikuchi1002
1
420
Claude Code Actionを使ったコード品質改善の取り組み
potix2
PRO
4
1.8k
「Chatwork」の認証基盤の移行とログ活用によるプロダクト改善
kubell_hr
1
110
標準技術と独自システムで作る「つらくない」SaaS アカウント管理 / Effortless SaaS Account Management with Standard Technologies & Custom Systems
yuyatakeyama
2
1.1k
MySQL5.6から8.4へ 戦いの記録
kyoshidaxx
1
110
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
VelocityConf: Rendering Performance Case Studies
addyosmani
330
24k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Raft: Consensus for Rubyists
vanstee
140
7k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
700
RailsConf 2023
tenderlove
30
1.1k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
16
940
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
Gamification - CAS2011
davidbonilla
81
5.3k
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ͷڥͰ͖ͨ • গ͠Ͱςετ͕͋Δͱɺؾ࣋ͪతʹܧଓ͠ ͍͢ • ࣮Λݟ͍͍͢ػձʹͳͬͨ • ԿΑΓ৺ཧతෆ͕҆ܰݮ͞ΕΔʂʂʂʂ ·ͱΊ
࣍ճ ΅ͬͪ։ൃͰςετΛ͍ͨ͠! ~ӡ༻ฤ~
࣍ճ ΅ͬͪ։ൃͰςετΛ͍ͨ͠! ~ӡ༻ฤ~ Δ͔ʁ