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
550
5プラットフォームをサポートしているプッシュ通知SDKをFCMに移行した話
konyavic
2
1.2k
Background Execution LimitsのAndroid Pの変更点?
konyavic
0
540
SDK開発にUIテストを導入してみた
konyavic
1
2.2k
Other Decks in Programming
See All in Programming
Building, Deploying, and Monitoring Ruby Web Applications with Falcon (Kaigi on Rails 2025)
ioquatix
4
2.1k
私達はmodernize packageに夢を見るか feat. go/analysis, go/ast / Go Conference 2025
kaorumuta
2
550
技術的負債の正体を知って向き合う / Facing Technical Debt
irof
0
170
iOSエンジニア向けの英語学習アプリを作る!
yukawashouhei
0
190
Swift Concurrency - 状態監視の罠
objectiveaudio
2
520
育てるアーキテクチャ:戦い抜くPythonマイクロサービスの設計と進化戦略
fujidomoe
1
170
詳しくない分野でのVibe Codingで困ったことと学び/vibe-coding-in-unfamiliar-area
shibayu36
3
4.9k
Flutterで分数(Fraction)を表示する方法
koukimiura
0
130
Cloudflare AgentsとAI SDKでAIエージェントを作ってみた
briete
0
140
CSC305 Lecture 04
javiergs
PRO
0
270
デミカツ切り抜きで面倒くさいことはPythonにやらせよう
aokswork3
0
230
非同期jobをtransaction内で 呼ぶなよ!絶対に呼ぶなよ!
alstrocrack
0
880
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
KATA
mclloyd
32
15k
Practical Orchestrator
shlominoach
190
11k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6.1k
Thoughts on Productivity
jonyablonski
70
4.9k
Code Reviewing Like a Champion
maltzj
526
40k
How GitHub (no longer) Works
holman
315
140k
Making Projects Easy
brettharned
119
6.4k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
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ͷࢀ রΛ͍࣋ͬͯͳ͍ͱ͍͚ͳ͍ʢςετέʔε͕ϗϫΠτϘοΫεతʹ ͳΔʣ