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
270
Spoonを使わずにテストケースでスクショを撮りたい
Victor Lee
June 28, 2018
Tweet
Share
More Decks by Victor Lee
See All by Victor Lee
Create Flutter Plugins
konyavic
2
2.4k
ライブラリーだってクラッシュレポートが見たい
konyavic
0
520
5プラットフォームをサポートしているプッシュ通知SDKをFCMに移行した話
konyavic
2
1.1k
Background Execution LimitsのAndroid Pの変更点?
konyavic
0
510
SDK開発にUIテストを導入してみた
konyavic
1
2k
Other Decks in Programming
See All in Programming
ゼロからの、レトロゲームエンジンの作り方
tokujiros
3
1.2k
自分ひとりから始められる生産性向上の取り組み #でぃーぷらすオオサカ
irof
8
2.2k
Linux && Docker 研修/Linux && Docker training
forrep
22
4.1k
CNCF Project の作者が考えている OSS の運営
utam0k
5
620
Vue.jsでiOSアプリを作る方法
hal_spidernight
0
120
Rubyでつくるパケットキャプチャツール
ydah
0
540
オニオンアーキテクチャを使って、 Unityと.NETでコードを共有する
soi013
0
390
DevinとCursorから学ぶAIエージェントメモリーの設計とMoatの考え方
itarutomy
1
500
Spring gRPC について / About Spring gRPC
mackey0225
0
180
【PHP】破壊的バージョンアップと戦った話〜決断と説得
satoshi256kbyte
0
100
Alba: Why, How and What's So Interesting
okuramasafumi
0
240
はてなにおけるfujiwara-wareの活用やecspressoのCI/CD構成 / Fujiwara Tech Conference 2025
cohalz
3
3.2k
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
32
6.4k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.2k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Building Adaptive Systems
keathley
39
2.4k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
990
Testing 201, or: Great Expectations
jmmastey
41
7.2k
The Invisible Side of Design
smashingmag
299
50k
Optimizing for Happiness
mojombo
376
70k
VelocityConf: Rendering Performance Case Studies
addyosmani
327
24k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
98
18k
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ͷࢀ রΛ͍࣋ͬͯͳ͍ͱ͍͚ͳ͍ʢςετέʔε͕ϗϫΠτϘοΫεతʹ ͳΔʣ