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
Android Testing Bootcamp #5 Hands-On Vol.2
Search
Fumihiko Shiroyama
October 28, 2016
Technology
3
120
Android Testing Bootcamp #5 Hands-On Vol.2
Android Testing Bootcamp #5
Hands-On Vol.2
Fumihiko Shiroyama
October 28, 2016
Tweet
Share
More Decks by Fumihiko Shiroyama
See All by Fumihiko Shiroyama
The world of Android wireless communications without Internet
srym
1
130
AWS Device FarmとCircleCIでAndroidのUIテストを自動化しよう
srym
1
5k
Spring BootをKotlinで作成しAmazon Elastic Container Service (ECS) で稼働させる
srym
6
1.9k
iOSDC_2019_DeviceFarm.pdf
srym
8
19k
世界で戦うエンジニアになるために_公開用.pdf
srym
18
45k
Unit Testing in a Nutshell - DroidKaigi 2018
srym
11
15k
Clean Architecture & TDD
srym
1
3.7k
はやい・やすい・うまい!スタートアップでも使える Retrofit + RxJava で瞬間APIクッキングレシピ
srym
2
600
I/O 2017 Short Report
srym
0
300
Other Decks in Technology
See All in Technology
Qiita埋め込み用スライド
naoki_0531
0
4.8k
サイボウズフロントエンドエキスパートチームについて / FrontendExpert Team
cybozuinsideout
PRO
5
38k
re:Invent 2024 Innovation Talks(NET201)で語られた大切なこと
shotashiratori
0
310
Snowflake女子会#3 Snowpipeの良さを5分で語るよ
lana2548
0
230
組織に自動テストを書く文化を根付かせる戦略(2024冬版) / Building Automated Test Culture 2024 Winter Edition
twada
PRO
13
3.7k
社内イベント管理システムを1週間でAKSからACAに移行した話し
shingo_kawahara
0
180
AI時代のデータセンターネットワーク
lycorptech_jp
PRO
1
280
非機能品質を作り込むための実践アーキテクチャ
knih
5
1.3k
How to be an AWS Community Builder | 君もAWS Community Builderになろう!〜2024 冬 CB募集直前対策編?!〜
coosuke
PRO
2
2.8k
レンジャーシステムズ | 会社紹介(採用ピッチ)
rssytems
0
150
PHP ユーザのための OpenTelemetry 入門 / phpcon2024-opentelemetry
shin1x1
1
200
C++26 エラー性動作
faithandbrave
2
730
Featured
See All Featured
Embracing the Ebb and Flow
colly
84
4.5k
How to Think Like a Performance Engineer
csswizardry
22
1.2k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Writing Fast Ruby
sferik
628
61k
How GitHub (no longer) Works
holman
311
140k
Bash Introduction
62gerente
608
210k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
The Invisible Side of Design
smashingmag
298
50k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
Facilitating Awesome Meetings
lara
50
6.1k
Documentation Writing (for coders)
carmenintech
66
4.5k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
170
Transcript
"OESPJE5FTUJOH#PPUDBNQ )BOET0O7PM "OESPJE@5FTUJOH@#$
w "OESPJE5FTUJOH#PPUDBNQ(SPVQ w IUUQBOESPJEUFTUJOH CPPUDBNQDPOOQBTTDPN w "OESPJE5FTUJOH#PPUDBNQ w IUUQBOESPJEUFTUJOH CPPUDBNQDPOOQBTTDPNFWFOU
ࠓճར༻͢Δڥ
w "OESPJE4UVEJP w IUUQTHJUIVCDPNTSZN5FTU)BOET0O w HJUDMPOFHJU!HJUIVCDPNTSZN 5FTU)BOET0OHJU w HJUDPNBTUFSྫϒϥϯν w
HJUDPBOTXFSղྫϒϥϯν
ΞδΣϯμ
w લճͷ͓͞Β͍ w IUUQTTQFBLFSEFDLDPNTSZNBOESPJE UFTUJOHCPPUDBNQOVNCFSIBOETPO w &TQSFTTP w 3PCPMFDUSJD w
IUUQTTQFBLFSEFDLDPNTSZN SPCPMFDUSJDEPUGPSCFHJOOFST
લճͷ͓͞Β͍
લճͷ͓͞Β͍ ࢿྉࢀর
&TQSFTTP
w (PPHMFެࣜ6*ςετϑϨʔϜϫʔΫ w IUUQTEFWFMPQFSBOESPJEDPNUSBJOJOH UFTUJOHVJUFTUJOHFTQSFTTPUFTUJOHIUNM
CVJMEHSBEMF dependencies { // Other dependencies ... androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2' }
CVJMEHSBEMF dependencies { // Other dependencies ... androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2' }
࠷ۙͷڥͰσϑΥϧτͰ༗ޮʂ
BOESPJE5FTU
BOESPJE5FTU ͜͜ʹςετΛॻ͍͍ͯ͘
࡞๏
@RunWith(AndroidJUnit4.class) public class MainActivityTest { @Rule public ActivityTestRule<MainActivity> mActivityTestRule
= new ActivityTestRule<>(MainActivity.class); @Test public void TextViewʹදࣔ͞Ε͍ͯΔจࣈྻΛݕূ͢ΔςετίʔυΛॻ͜͏() { onView(withId(R.id.text)).check(ViewAssertions.matches(withText("Hello World!"))); } }
@RunWith(AndroidJUnit4.class) public class MainActivityTest { @Rule public ActivityTestRule<MainActivity> mActivityTestRule
= new ActivityTestRule<>(MainActivity.class); @Test public void TextViewʹදࣔ͞Ε͍ͯΔจࣈྻΛݕূ͢ΔςετίʔυΛॻ͜͏() { onView(withId(R.id.text)).check(ViewAssertions.matches(withText("Hello World!"))); } }
@RunWith(AndroidJUnit4.class) public class MainActivityTest { @Rule public ActivityTestRule<MainActivity> mActivityTestRule
= new ActivityTestRule<>(MainActivity.class); @Test public void TextViewʹදࣔ͞Ε͍ͯΔจࣈྻΛݕূ͢ΔςετίʔυΛॻ͜͏() { onView(withId(R.id.text)).check(ViewAssertions.matches(withText("Hello World!"))); } } ىಈ͢Δ"DUJWJUZ
@RunWith(AndroidJUnit4.class) public class MainActivityTest { @Rule public ActivityTestRule<MainActivity> mActivityTestRule
= new ActivityTestRule<>(MainActivity.class); @Test public void TextViewʹදࣔ͞Ε͍ͯΔจࣈྻΛݕূ͢ΔςετίʔυΛॻ͜͏() { onView(withId(R.id.text)).check(ViewAssertions.matches(withText("Hello World!"))); } } ࣗಈىಈ
@RunWith(AndroidJUnit4.class) public class MainActivityTest { @Rule public ActivityTestRule<MainActivity> mActivityTestRule
= new ActivityTestRule<>(MainActivity.class, false, false); @Test public void ActivityͷىಈλΠϛϯάΛ੍ޚ͍ͨ͠߹() { mActivityTestRule.launchActivity(new Intent()); } } ࣗಈىಈͤͨ͘͞ͳ͍߹
@RunWith(AndroidJUnit4.class) public class MainActivityTest { @Rule public ActivityTestRule<MainActivity> mActivityTestRule
= new ActivityTestRule<>(MainActivity.class, false, false); @Test public void ActivityͷىಈλΠϛϯάΛ੍ޚ͍ͨ͠߹() { mActivityTestRule.launchActivity(new Intent()); } }
@RunWith(AndroidJUnit4.class) public class MainActivityTest { @Rule public ActivityTestRule<MainActivity> mActivityTestRule
= new ActivityTestRule<>(MainActivity.class, false, false); @Test public void ActivityͷىಈλΠϛϯάΛ੍ޚ͍ͨ͠߹() { mActivityTestRule.launchActivity(new Intent()); } }
جຊ
w PO7JFX XJUI*E 3JEUFYU DIFDL NBUDIFT XJUI5 FYU )FMMP8PSME
w PO7JFX BMM0G XJUI*E 3JECVUUPO XJUI5FYU $-*$, QFSGPSN DMJDL
&TQSFTTP w PO7JFX w PO%BUB w DMPTF4PGU,FZCPBSE w QSFTT#BDL
7JFX.BUDIFST w IBT$POUFOU%FTDSJQUJPO w XJUI1BSFOU .BUDIFS w XJUI$IJME
.BUDIFS w IBT&SSPS5FYU w IBT'PDVT w IBT4JCMJOH w JT$IFDLFE w JT$MJDLBCMF w JT&OBCMFE w XJUI5FYU
7JFX*OUFSBDUJPO w DIFDL w QFSGPSN
7JFX"DUJPOT w DMJDL w EPVCMF$MJDL w MPOH$MJDL
w QSFTT#BDL w QSFTT.FOV,FZ w TXJQF%PXO TXJQF6Q w TXJQF-FGU TXJQF3JHIU w UZQF5FYU
ϋϯζΦϯ w IFMMPFTQSFTTPͷ.BJO"DUJWJUZ5FTUΛ࣮ͯͩ͘͠ ͍͞ʂ
ϋϯζΦϯ w BQQ-PHJO"DUJWJUZ5FTUΛ࣮͍ͯͩ͘͠͞ʂ
3PCPMFDUSJD
3PCPMFDUSJD ࢿྉࢀর