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
Spoonを使わずにテストケースでスクショを撮りたい
Search
Victor Lee
June 28, 2018
Programming
0
290
Spoonを使わずにテストケースでスクショを撮りたい
Victor Lee
June 28, 2018
Tweet
Share
More Decks by Victor Lee
See All by Victor Lee
Create Flutter Plugins
konyavic
2
2.5k
ライブラリーだってクラッシュレポートが見たい
konyavic
0
540
5プラットフォームをサポートしているプッシュ通知SDKをFCMに移行した話
konyavic
2
1.2k
Background Execution LimitsのAndroid Pの変更点?
konyavic
0
540
SDK開発にUIテストを導入してみた
konyavic
1
2.1k
Other Decks in Programming
See All in Programming
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
180
技術的負債で信頼性が限界だったWordPress運用をShifterで完全復活させた話
rvirus0817
1
2.1k
Kiroの仕様駆動開発から見えてきたAIコーディングとの正しい付き合い方
clshinji
1
150
KessokuでDIでもgoroutineを活用する / Go Connect #6
mazrean
0
120
TanStack DB ~状態管理の新しい考え方~
bmthd
2
340
20250808_AIAgent勉強会_ClaudeCodeデータ分析の実運用〜競馬を題材に回収率100%の先を目指すメソッドとは〜
kkakeru
0
210
開発チーム・開発組織の設計改善スキルの向上
masuda220
PRO
15
8.1k
Infer入門
riru
4
1.6k
AIレビュアーをスケールさせるには / Scaling AI Reviewers
technuma
2
230
ワープロって実は計算機で
pepepper
2
1.4k
AWS Serverless Application Model入門_20250708
smatsuzaki
0
130
サーバーサイドのビルド時間87倍高速化
plaidtech
PRO
0
500
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Done Done
chrislema
185
16k
Gamification - CAS2011
davidbonilla
81
5.4k
The Cost Of JavaScript in 2023
addyosmani
53
8.8k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Transcript
4QPPOΛΘͣʹ ςετέʔεͰεΫγϣΛࡱΓ͍ͨ 4IJOKVLVBBS !LPOZBWJD
!LPOZBWJD ཥঝӹʢΓͪ͐Μ͍ʣɾग़ɾຊ ࡶ৯ܥΤϯδχΞ dࠐΈ04ݚڀ⾣dήʔϜ։ൃ⾣d4%,։ൃ
‣ ΞϓϦϝοηʔδ ‣ Ϣʔβʔૢ࡞ͰτϦΨʔ ‣ μΠΞϩάɾ ΦʔόʔϨΠɾόφʔ ‣ ηάϝϯτ ‣
"#ςετ ‣ ίϯόʔδϣϯܭଌ ‣ ɾɾɾ
ςετέʔεͰΞϓϦϝοηʔδͷදࣔΛ֬ೝ͍ͨ͠ ‣ όϦΤʔγϣϯ͕ଟ͗͢Δ ‣ ΞϓϦϝοηʔδͷछྨ ‣ ղ૾ ‣ ը૾ͷΞεϖΫτൺ ‣
จࣈ ‣ ɾɾɾ ‣ 6*ςετͰΞαʔγϣϯॻ͘ͷඇݱ࣮త ‣ ςετέʔεͰࣗಈͰεΫγϣࡱΓ͍ͨ
4QPPO
‣ ࣗಈͰεΫγϣΛࡱΔ ‣ ෳฒྻ࣮ߦ ‣ ศར Spoon
ͱ͜ΖͰʜ
৺͋Γ ‣ ΞϓϦϝοηʔδදࣔͷํͪΐͬͱҧ͏͚Ͳ͏·͘ࡱΕΔ͔ʁ ‣ 4%,ͷ6*ςετ"OESPJE5FTU0SDIFTUSBUPS͕΄΅ඞਢ ‣ ͜Ε4QPPOͷSVOOFSͱ͏·͘ڞଘͰ͖ΔͩΖ͏͔ʁ ‣ 6*ςετͰ͏ΞϓϦ͋·Γґଘ૿ͨ͘͠ͳ͍ ‣
ͦͦεΫγϣࡱΔ͘Β͍ͳΒ؆୯ʹͰ͖ΔͷͰͳ͍͔ʁ
‣ 9$6*4DSFFOͰ ؆୯ʹͰ͖Δ XCUITestͷ߹
4QPPOͷ࣮ΛݟͯΈΔ
‣ #JUNBQͰ$BOWBTॳظԽ ‣ BDUJWJUZ HFU8JOEPX HFU%FDPS7JFX ESBX DBOWBT
‣ ͜Ε͚ͩʂ
͜ͷ··ͬͯΈΔ
None
None
ͬͺΓϝοηʔδ͕ඳը͞Εͳ͍
-BZPVU*OTQFDUPS
4FMFDU8JOEPXͰ .BJO"DUJWJUZ͕ݸฒΜͰΔ
None
ΞϓϦϝοηʔδʢμΠΞϩάʣ ‣ %JBMPH'SBHNFOUͰ࣮͞Ε͍ͯΔ ‣ "DUJWJUZͱผͷ7JFXπϦʔʹͳΔ ‣ ͬͺΓͩΊʁ
‣ #JUNBQͰ$BOWBTॳظԽ ‣ BDUJWJUZ HFU8JOEPX HFU%FDPS7JFX ESBX DBOWBT
‣ ͜Ε͚ͩʂ
7JFX͑͋͞ΕESBX͢Δ͚ͩ
7JFX͑͋͞ΕͰ͖Δ ‣ 'SBHNFOU5BHΛ͍ͬͯΔ Fragment fragment = activityRule.getActivity() .getFragmentManager() .findFragmentByTag(fragmentTag); if
(fragment != null) { View view = ((DialogFragment) fragment).getDialog() .getWindow() .getDecorView() .getRootView(); view.draw(canvas); }
None
ͣΕΔͷͰௐ Fragment fragment = activityRule.getActivity() .getFragmentManager() .findFragmentByTag(fragmentTag); if (fragment !=
null) { View view = ((DialogFragment) fragment).getDialog() .getWindow() .getDecorView() .getRootView(); int[] loc = new int[2]; view.getLocationOnScreen(loc); canvas.translate(loc[0], loc[1]); view.draw(canvas);
None
ͬͨʂ
ͱ͜ΖͰʜ
όφʔλΠϓ%JBMPH'SBHNFOUͰͳ͍ ‣ 1PQVQ8JOEPXΛ͍ͬͯΔ ‣ TFU$POUFOU7JFX ‣ 5BHͰऔΓग़ͤͳ͍ ‣ ͬͺΓͩΊʁ
7JFXͷࢀরΛ ΞϓϦ͔Βςετέʔεʹ͍͍ͤ
None
·ͱΊ ‣ ςετέʔεͰεΫγϣΛࡱΔʹɺ7JFXͷࢀর͕͋ΕΑ͍ ‣ %JBMPH'SBHNFOUͷεΫγϣΛࡱΔʹɺ5BHͰ'SBHNFOUͷࢀরΛऔ Γग़ͦ͏ ‣ 1PQVQ8JOEPXͰग़ͨ͠7JFXͷεΫγϣΛࡱΔʹɺ༧Ί7JFXͷࢀ রΛ͍࣋ͬͯͳ͍ͱ͍͚ͳ͍ʢςετέʔε͕ϗϫΠτϘοΫεతʹ ͳΔʣ