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
510
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
Amazon S3 NYJavaSIG 2024-12-12
sullis
0
110
Kaigi on Railsに初参加したら、その日にLT登壇が決定した件について
tama50505
0
110
なまけものオバケたち -PHP 8.4 に入った新機能の紹介-
tanakahisateru
1
130
ゆるやかにgolangci-lintのルールを強くする / Kyoto.go #56
utgwkk
2
450
創造的活動から切り拓く新たなキャリア 好きから始めてみる夜勤オペレーターからSREへの転身
yjszk
1
140
EC2からECSへ 念願のコンテナ移行と巨大レガシーPHPアプリケーションの再構築
sumiyae
2
420
ドメインイベント増えすぎ問題
h0r15h0
2
420
20年もののレガシープロダクトに 0からPHPStanを入れるまで / phpcon2024
hirobe1999
0
820
Zoneless Testing
rainerhahnekamp
0
120
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
970
[JAWS-UG横浜 #76] イケてるアップデートを宇宙いち早く紹介するよ!
maroon1st
0
510
テストコードのガイドライン 〜作成から運用まで〜
riku929hr
5
940
Featured
See All Featured
Fireside Chat
paigeccino
34
3.1k
BBQ
matthewcrist
85
9.4k
For a Future-Friendly Web
brad_frost
175
9.4k
Making the Leap to Tech Lead
cromwellryan
133
9k
Become a Pro
speakerdeck
PRO
26
5k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
2
290
Designing Experiences People Love
moore
138
23k
Practical Orchestrator
shlominoach
186
10k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.1k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
Side Projects
sachag
452
42k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
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ͷࢀ রΛ͍࣋ͬͯͳ͍ͱ͍͚ͳ͍ʢςετέʔε͕ϗϫΠτϘοΫεతʹ ͳΔʣ