Page Object Pattern with XCUITest
by
Kento Nagata
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
©2018 Wantedly, Inc. Page Object Pattern with XCUITest potatotips #59 2019/02/28 Kento Nagata, Wantedly, Inc.
Slide 2
Slide 2 text
©2018 Wantedly, Inc. ,FOUP/BHBUB 8BOUFEMZ *OD4PGUXBSF&OHJOFFS 8IBU*EPOPX ɾ(SPXUIPG8BOUFEMZ7JTJU &OHJOFFSJOH ɾ3BJMTZFBST ɾJ044XJGUZFBS/FX
Slide 3
Slide 3 text
©2018 Wantedly, Inc. 6*౷߹ςετΛͬͱྑ͘͢Δ 1BHF0CKFDU1BUUFSO ࠓ͢͜ͱ
Slide 4
Slide 4 text
©2018 Wantedly, Inc. 9$6*5FTUͰ6*ͷ౷߹ςετΛॻ͖͍ͨ લఏ
Slide 5
Slide 5 text
©2018 Wantedly, Inc. 1BHF0CKFDU1BUUFSOɺ ςετରͰ͋ΔϖʔδΛநԽͯ͠ɺ %3:͔ͭ3FBEBCMFͳ ςετίʔυΛ࣮ݱ͠·͢ɻ
Slide 6
Slide 6 text
©2018 Wantedly, Inc. ॏෳͨ͠ίʔυ ҙਤͷಡΈͮΒ͍ίʔυ Page Object Pattern ͕ղܾ͢Δ՝
Slide 7
Slide 7 text
©2018 Wantedly, Inc. ৽نొϑϩʔͷྫ
Slide 8
Slide 8 text
©2018 Wantedly, Inc. 8FMDPNF1BHF ىಈޙͷ࠷ॳͷϖʔδ ɾΠϯετʔϧޙʹॳΊͯىಈͨ͠ޙ ɾ৽نొ͔ϩάΠϯΛબͰ͖Δ ɾࠓճ4JOH6QϘλϯΛԡ͢ ৽نొϑϩʔͷྫ
Slide 9
Slide 9 text
©2018 Wantedly, Inc. 4JHOVQ1BHF ৽نొϖʔδ ɾ&NBJMɺύεϫʔυɺ໊લΛೖྗͰ͖Δ ɾશͯೖྗ͢Δͱ4JHOVQϘλϯ͕ԡͤΔ ৽نొϑϩʔͷྫ
Slide 10
Slide 10 text
©2018 Wantedly, Inc. 4JHOVQ1BHF ৽نొϖʔδ ɾ&NBJMɺύεϫʔυɺ໊લΛೖྗͰ͖Δ ɾશͯೖྗ͢Δͱ4JHOVQϘλϯ͕ԡͤΔ ৽نొϑϩʔͷྫ
Slide 11
Slide 11 text
©2018 Wantedly, Inc. $PNQMFUF1BHF ྃϖʔδ ɾొ͕ྃͨ͜͠ͱΛ͑Δ ɾ4UBSUϘλϯΛԡ͢ͱ͍࢝ΊΒΕΔ ৽نొϑϩʔͷྫ
Slide 12
Slide 12 text
©2018 Wantedly, Inc. Welcome Page Sign up Page Complete Page
Slide 13
Slide 13 text
©2018 Wantedly, Inc. ςετίʔυ 9$6*5FTUͰͦͷ··ॻ͍ͯΈΔ
Slide 14
Slide 14 text
©2018 Wantedly, Inc.
Slide 15
Slide 15 text
©2018 Wantedly, Inc.
Slide 16
Slide 16 text
©2018 Wantedly, Inc.
Slide 17
Slide 17 text
©2018 Wantedly, Inc.
Slide 18
Slide 18 text
©2018 Wantedly, Inc.
Slide 19
Slide 19 text
©2018 Wantedly, Inc.
Slide 20
Slide 20 text
©2018 Wantedly, Inc.
Slide 21
Slide 21 text
©2018 Wantedly, Inc.
Slide 22
Slide 22 text
©2018 Wantedly, Inc. ॏෳͨ͠ίʔυ w ϢʔβڥʹͳͲͷ݅ʹΑͬͯ෦తͳذͳͲ͕͋Δ߹ɺ༷ʑͳέʔεͰςετ͍ͨ͠ w ͋Γ͕ͪͳΞϓϩʔνɺίϐϖɺϝιουΓग़͠ w ίϐϖɺ%3:Ͱͳ͘มԽʹऑ͍ w ϝιουΓग़͠ɺநԽͷཻ͕ἧΘͣಡΈͮΒ͍ ҙਤͷಡΈͮΒ͍ίʔυ w 8IBUΛίϝϯτͨ͘͠ͳΔͷɺѱ͍αΠϯ w ຊདྷͷɺҰ࿈ͷૢ࡞ͷྲྀΕͱΞαʔγϣϯ͚ͩ Կ͕͔
Slide 23
Slide 23 text
©2018 Wantedly, Inc. ͦ͜Ͱɺ1BHF0CKFDU1BUUFSO
Slide 24
Slide 24 text
©2018 Wantedly, Inc.
Slide 25
Slide 25 text
©2018 Wantedly, Inc. WelcomePage class
Slide 26
Slide 26 text
©2018 Wantedly, Inc. WelcomePage class SignUpPage class
Slide 27
Slide 27 text
©2018 Wantedly, Inc. WelcomePage class SignUpPage class CompletePage class
Slide 28
Slide 28 text
©2018 Wantedly, Inc. WelcomePage class SignUpPage class CompletePage class func tapSignUpButton() func tapLoginButton() var errorMessage: String func typeEmail(_:) func typePassword(_:) func typeName(_:) func tapSignUpButton() var userName: String func tapStartButton()
Slide 29
Slide 29 text
©2018 Wantedly, Inc. WelcomePage class SignUpPage class CompletePage class func tapSignUpButton() func tapLoginButton() var errorMessage: String func typeEmail(_:) func typePassword(_:) func typeName(_:) func tapSignUpButton() var userName: String func tapStartButton() ݱࡏͷঢ়ଶΛฦ͢ϓϩύςΟ
Slide 30
Slide 30 text
©2018 Wantedly, Inc. WelcomePage class SignUpPage class CompletePage class func tapSignUpButton() func tapLoginButton() var errorMessage: String func typeEmail(_:) func typePassword(_:) func typeName(_:) func tapSignUpButton() var userName: String func tapStartButton() ͦͷϖʔδͷૢ࡞ͷϝιου
Slide 31
Slide 31 text
©2018 Wantedly, Inc. ॳظԽ࣌ʹͦͷϖʔδͷଘࡏΛΞαʔγϣϯ ૢ࡞ͷϝιου࣮ߦޙͷ1BHFΦϒδΣΫτΛ ฦ͢ • ϝιουνΣʔϯ͕Ͱ͖Δ • ը໘ભҠ͕ൃੜ͠ͳ͍߹selfΛฦ͢ Page Object Pattern ͷϙΠϯτ
Slide 32
Slide 32 text
©2018 Wantedly, Inc. Page Object Patter Λͬͨςετίʔυ
Slide 33
Slide 33 text
©2018 Wantedly, Inc. Page Object Patter Λͬͨςετίʔυ
Slide 34
Slide 34 text
©2018 Wantedly, Inc. Page Object Patter Λͬͨςετίʔυ
Slide 35
Slide 35 text
©2018 Wantedly, Inc. Page Object Patter Λͬͨςετίʔυ
Slide 36
Slide 36 text
©2018 Wantedly, Inc. Page Object Patter Λͬͨςετίʔυ
Slide 37
Slide 37 text
©2018 Wantedly, Inc. Page Object Patter Λͬͨςετίʔυ
Slide 38
Slide 38 text
©2018 Wantedly, Inc. ಡΈ͘͢ͳͬͨʂ
Slide 39
Slide 39 text
©2018 Wantedly, Inc. ۩ମతͳ࣮ 1BHF1SPUPDPMͱͦͷ۩ମ࣮ͷհ
Slide 40
Slide 40 text
©2018 Wantedly, Inc. 1BHF1SPUPDPM ϓϩτίϧΛ࡞Ζ͏ ࠷ݶͷΠϯλʔϑΣΠεΛἧ͑ΔͨΊʹ1SPUPDPM Λ࡞Γ·͢ɻ ɾBQQଞͷ1BHFΛ࡞ΔͨΊʹอ࣋͠·͢ ɾWJFXϖʔδΛද͢ཁૉ 7JFX$POUSPMMFSͷWJFX ʹͳΔ͜ͱ͕ଟ͍ ɾJOJU BQQΛड͚औͬͯηοτ͢Δ͜ͱΛظ͠· ͢ 1BHF1SPUPDPM ۩ମతͳ࣮
Slide 41
Slide 41 text
©2018 Wantedly, Inc.
Slide 42
Slide 42 text
©2018 Wantedly, Inc. Page Protocolʹ४ڌ
Slide 43
Slide 43 text
©2018 Wantedly, Inc. Page Protocolʹ४ڌ
Slide 44
Slide 44 text
©2018 Wantedly, Inc. ϖʔδ্ͷΤϥʔϝοηʔδΛද͢ϓϩύςΟ
Slide 45
Slide 45 text
©2018 Wantedly, Inc. ૢ࡞ʹඞཁͳཁૉΛ༻ҙ
Slide 46
Slide 46 text
©2018 Wantedly, Inc. ֤ૢ࡞ͷϝιουΛఆٛɺૢ࡞ޙͷϖʔδΛฦ͢
Slide 47
Slide 47 text
©2018 Wantedly, Inc. ૢ࡞ʹඞཁͳཁૉ1SJWBUFQSPQFSUZͰఆٛ w ֤ૢ࡞ϝιουͷఆٛγϯϓϧʹͳΔ Ξαʔγϣϯʹඞཁͳϖʔδͷঢ়ଶ $PNQVUFEQSPQFUZͱͯ͠ఆٛ w ඞཁ࠷ݶͷཁૉ͚ͩΛฦ͢ w ෳࡶʹͳΔͳΒઐ༻ͷ4USVDUΛఆٛ͢Δͷ͋Γ Page ͷ࣮ͷϙΠϯτ
Slide 48
Slide 48 text
©2018 Wantedly, Inc. ·ͱΊ
Slide 49
Slide 49 text
©2018 Wantedly, Inc. w 1BHF0CKFDU1BUUFSO%3:͔ͭ3FBEBCMFͳ 6*ςετΛ࣮ݱͰ͖Δ w ͜ͷύλʔϯ"OESPJE8FCͰ͑Δ w ͲΜͲΜ׆༻͍ͯ͜͠͏ ·ͱΊ