рдХрд╛рд╕рдкреНрд░реЗрд╕реЛ: рдЬрд┐рд╕ рдСрдЯреЛрдЯреЗрд╕реНрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЖрдк рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рдереЗ

рд╣рд░ рдХреЛрдИ рдЬреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдСрдЯреЛрдЯреЗрд╕ рдореЗрдВ рдЧрдпрд╛ рд╣реИ рдпрд╛ рд▓рдЧрд╛ рд╣реБрдЖ рд╣реИ, рд╡рд╣ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рджрд░реНрдж рдХреНрдпрд╛ рд╣реИред
рдЖрдк рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдорд╛рддреНрд░рд╛ рд╕реЗ рдердХ рдЬрд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЫреБрдЯреНрдЯреА рдорджрдж рди рдХрд░реЗрдВред рдСрдЯреЛрдЯреЗрд╕реНрдЯ рдХреЗ рдХрд╛рд░рдг рд▓реЛрдЧ рдЫреЛрдбрд╝ рднреА рджреЗрддреЗ рд╣реИрдВред

рджрд░реНрдж, рдкреАрдбрд╝рд╛ рдФрд░ рдкреАрдбрд╝рд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХреБрдЫ рдирдпрд╛ рдФрд░ рд╕реБрдВрджрд░ рдЙрднрд░рдиреЗ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИред рд╣рдордиреЗ рдЙрди рд╕рднреА рд░реЗрдХ рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬрд┐рди рдкрд░ рд╣рдореЗрдВ рдХрджрдо рд░рдЦрдирд╛ рдерд╛, рдЕрдкрдиреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ рдПрд╡рд┐рддреЛ рдФрд░ рдПрдЪрдПрдЪ рдХреЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛рдпрд╛ рдФрд░ рдХреБрдЫ рдРрд╕рд╛ рдмрдирд╛рдпрд╛, рдЬреЛ рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЕрддреБрд▓рдиреАрдп рд░реВрдк рд╕реЗ рдмреЗрд╣рддрд░ рдФрд░ рдЕрдзрд┐рдХ рдлрд▓рджрд╛рдпреА рдмрдирд╛ рджреЗрдЧрд╛ред

рдорд┐рд▓реЛ: рдХрд╛рд╕рдкреНрд░реЗрд╕реЛ - рдЬрд┐рд╕ рдСрдЯреЛрдЯреЗрд╕реНрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЖрдк рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рдереЗ!



рдореИрдВ рддреБрд░рдВрдд рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдХреИрд╕рдкреНрд░реЗрд╕реЛ рдФрд░ рдПрдбрдмрд╕реЗрд╡рд░ (рдХрд╛рд╕рдкреНрд░реЗрд╕реЛ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдПрдХ рдордЬрдмреВрдд рдФрд░ рд╕реНрд╡рддрдВрддреНрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛) рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рджреЛ рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рд╡реАрдбрд┐рдпреЛ рд╣реИрдВ:

1. рджрд┐рдорд┐рддреНрд░реА рдореВрд╡рдЪрди, рдпреВрдЬреАрди рдорд╛рддреНрд╕рдпреБрдХ - рдХреИрд╕реЗ рдСрдЯреЛрдЯреЗрд╕реНрдЯ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рдкрд╛рдЧрд▓ рди рд╣реЛрдВ
2. Egor Kournikov - UI рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП

рд╡реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ: рд╣рдо рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреВрд╕рд░реЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рд╕реЗ рдХреИрд╕реЗ рдЖрдЧреЗ рдмрдврд╝реЗ, рдФрд░ рдЕрдВрдд рдореЗрдВ рдХреНрдпрд╛ рд╣реБрдЖред рдореИрдВ рдЗрд╕рдХреА рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВред

рдЗрд╕рд▓рд┐рдП, рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдХреЗрд╡рд▓ рдореБрдЦреНрдп рдмрд┐рдВрджреБрдУрдВ рдФрд░ рдЪрд┐рдкреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рддрд╛рдХрд┐ рдЖрдк рдЬрд▓реНрджреА рд╕реЗ рд╕рдордЭ рд╕рдХреЗрдВ рдХрд┐ рдпрд╣ рд░реВрдкрд░реЗрдЦрд╛ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдХреМрди рд╕реЗ рдХрд╛рд░реНрдп рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рд╣рд┐рдореНрдордд рдФрд░ рд╡рд┐рд╡рд░рдг рд╡реАрдбрд┐рдпреЛ рдФрд░ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╣рдореЗрдВ рдЕрдкрдиреЗ рдврд╛рдВрдЪреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?


рд╣рд░ рдбреЗрд╡рд▓рдкрд░ рдЬреЛ рдСрдЯреЛрдЯреЗрд╕реНрдЯ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╕рд╡рд╛рд▓ рдкреВрдЫрддрд╛ рд╣реИ:

  1. рдСрдЯреЛрдЯреЗрд╕реНрдЯреНрд╕ рд▓рд┐рдЦрдирд╛ рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ?
  2. рдХреНрдпрд╛ рдЙрдкрдХрд░рдг рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП?
  3. рдпрджрд┐ рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдХрд░рдг рдирд╣реАрдВ рд╣реИ рддреЛ рдХреНрдпрд╛ рдХрд░реЗрдВ?
  4. рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕ рдХреНрдпрд╛ рд╣реИрдВ?

рдЗрд╕ рд╕рднреА рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЯреАрдо рдЗрди рдореБрджреНрджреЛрдВ рдХреЛ рдЕрдкрдиреЗ рддрд░реАрдХреЗ рд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реА рд╣реИред рдирддреАрдЬрддрди, рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХ рднреА рдЬрд╡рд╛рдм рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЭрд╛рдВрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реАрдВ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдСрдЯреЛрдЯреИрд╕реНрдЯ рд▓рд┐рдЦрдирд╛ рдФрд░ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╣рдВрдЧрд╛ рд╣реИ, рдЬреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рди рдХреА рд╡реНрдпрд╡рд╣рд╛рд░реНрдпрддрд╛ рдкрд░ рд╕рд╡рд╛рд▓ рдЙрдард╛рддрд╛ рд╣реИред

рдЗрд╕ рдмреАрдЪ, рдкрд░реАрдХреНрд╖рдг рд╕реНрд╡рдЪрд╛рд▓рди рдЕрдЪреНрдЫреЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдХрд╛ рдкреАрдЫрд╛ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣рд░реЗ рдФрд░ рд░реЗрдбреА-рдЯреВ-рд░рд┐рд▓реАрдЬрд╝ рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рд░рд┐рд▓реАрдЬ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХрдорд╛рддреНрд░ рд╕рдорд╕реНрдпрд╛ рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЙрддреНрддрд░ рдвреВрдВрдв рд░рд╣реА рд╣реИред рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА рдЯреАрдореЛрдВ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИрдВред рддреЛ рдХреНрдпреЛрдВ рди рдЙрдирдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП?

рд╣рдо рдврд╛рдВрдЪреЗ рд╕реЗ рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?


рдЖрдЗрдП рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реЗ рд╣рдорд╛рд░реА рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдХреЛ рдереЛрдбрд╝рд╛ рдкреНрд░рдХрдЯ рдХрд░реЗрдВред

рдЕрдЪреНрдЫреА рдкрдардиреАрдпрддрд╛


рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХреЗрд╡рд▓ рдПрд╕реНрдкреНрд░реЗрд╕реЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣рдореЗрдВ Android рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред рдмреЗрд╢рдХ, рдПрдкрд┐рдпрдо + рдХрдХрдбрд╝реА рд╣реИ, рдЬреЛ рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рдЖрдкрдХреЛ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рджреЛ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рдореБрджрд╛рдп рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рд╕реЗ рдмрд╣реБрдд рдкрд╣рд▓реЗ рд╕рд╛рдзрди рдХреА рдУрд░ рдмрдврд╝ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдЙрдкрд░реЛрдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рднреА рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛: рдиреЗрдЯрд╡рд░реНрдХ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕реЗ рднрд░рд╛ рд╣реИред рдпрд╣рд╛рдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╣рд╛рд▓ рдХреЗ рд▓рд┐рдВрдХ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ: рдПрдкрд┐рдпрдо рдмрдирд╛рдо рдПрд╕реНрдкреНрд░реЗрд╕реЛред рдХреНрдпрд╛ рдЪреБрдирдирд╛ рд╣реИ рдФрд░ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ?

рддреЛ, рдПрд╕реНрдкреНрд░реЗрд╕реЛред рдПрдХ рдмреБрд░рд╛ рдЙрдкрдХрд░рдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдПрдкреА рдереЛрдбрд╝рд╛ рд╕рд╛ рдЕрдВрджрд░ рдмрд╛рд╣рд░ рд╣реИред рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:

@Test fun espressoTest() { onView(allOf(allOf(withId(R.id.espresso), isDescendantOfA(withId(R.id.coffee_variates))), isDescendantOfA(withId(R.id.content)))) .check(matches(withEffectiveVisibility(View.VISIBLE))) } 

рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЛрдЪрдирд╛ рд╣реЛрдЧрд╛, рд╣реИ рдирд╛?

рдерд╛рдИрд▓реИрдВрдб рдФрд░ рдСрд╕реНрдЯреНрд░реЗрд▓рд┐рдпрд╛ рдХреЗ рджреЗрд╡рддрд╛рдУрдВ рдиреЗ рд╣рдореЗрдВ рдХрд╛рдХрд╛рдУ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдПрдХ рдирдЬрд╝рд░ рдореЗрдВ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рд╣реА рдХреЛрдб рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рдХрд╛рдУ рдХреЗ рд╕рд╛рде:

 @Test fun kakaoTest() { mainScreen { myView.isVisible() } } 

рдмрд╣реБрдд рдмреЗрд╣рддрд░ред рд▓реЗрдХрд┐рди рдЕрдм рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдЖрдкрдиреЗ рдкреВрд░реЗ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдХреЛрдб рдХреНрдпрд╛ рд╣реЛрдЧрд╛?

 @RunWith(AndroidJUnit4::class) class OpenHomeScreenTest: TestCase() { @Test fun test() { MainScreen() { homeButton.click() } HomeScreen() { title { isVisible() hasAnyText() } } } } 

рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐, рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд┐рдП рдЧрдП рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдХреЗ рд╕рд╛рде рд╕рд╣рд╕рдВрдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд▓реЙрдЧ рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛ рдбреАрдПрд╕рдПрд▓ рджрд░реНрдЬ рдХрд░реЗрдВ, рдЬреЛ рддреБрд░рдВрдд рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рд░реВрдк рдмрджрд▓ рджреЗрддрд╛ рд╣реИ:

 @RunWith(AndroidJUnit4::class) class OpenHomeScreenTest: TestCase() { @Test fun test() { step(тАЬ1. Open Home screenтАЭ) { MainScreen() { homeButton.click() } } step(тАЬ2. Check Home titleтАЭ) { HomeScreen() { title { isVisible() hasAnyText() } } } } } 

рд╕рд╣рдордд, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рджрд┐рдЦрддрд╛ рд╣реИред

рд╕реНрдерд┐рд░рддрд╛


рдпреВрдЖрдИ-рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред рдЗрд╕реА рдХреНрд░рд┐рдпрд╛ рдХреЛ 50 рдмрд╛рд░ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ 51 рд╡реЗрдВ рдмреНрд░реЗрдХ рдкрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдг рдХреЗред рдФрд░ 52 рд╡реЗрдВ рд░рди рдкрд░ рдлрд┐рд░ рд╕реЗ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИред рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ "рдлрдбрд╝рдлрдбрд╝рд╛рд╣рдЯ" рдЖрдкрдХреА рдирд╕реЛрдВ рдХреЛ рдЦрд░рд╛рдм рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдордиреЗ рд╕реЛрдЪрд╛, рдХреНрдпреЛрдВ рди рдХрд╛рдХреЛ-рдПрд╕реНрдкреНрд░реЗрд╕реЛ рдХреА рд╕рднреА рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛рдП, рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рддрд░рд╣ рдХреА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡реНрдпрд╡рд╣рд╛рд░ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПред

рдЗрд╕ рддрд░рд╣ рдХрд╛рдХрд╛рдУ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг 2.1 рдкреИрджрд╛ рд╣реБрдЖ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рд╕рднреА рдПрд╕реНрдкреНрд░реЗрд╕реЛ рдХреЙрд▓ рдореЗрдВ рдПрдХреАрдХреГрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдордиреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░ рдмрдирд╛рдП, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдбрд╛рдпрд▓-рдкреАрдпрд░ рдкрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд╕ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпреЗ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░ рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рд╣реИрдВ, рддрд╛рдХрд┐ рдЖрдк рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЙрдиреНрд╣реЗрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХреЗрдВред рдЧреЛрджреА рдореЗрдВ рдФрд░ рдкрдврд╝реЗрдВред

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдкрд░рддрджрд╛рд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рд▓рдбрд╝рд╛рдИ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ - рдпрджрд┐ рдЖрдкрдХреЗ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдиреЗ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджрд┐рдпрд╛, рддреЛ рдХрд╛рд╕реНрдкреНрд░реЗрд╕реНрд╕реЛ рдХреА рдХреЛрд╢рд┐рд╢ рд╣реЛрдЧреА:

  • Doskrollitред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рджреГрд╢реНрдп рдмрд╕ рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрд╛рдИ рди рджреЗред
  • рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╡рд╛рдж рдХреЛ рдирд┐рдХрд╛рд▓реЗрдВ рдЬреЛ рднрдЧрд╡рд╛рди рд╕реЗ рдЖ рд╕рдХрддрд╛ рд╣реИ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХрд╣рд╛рдВ рд╣реИред
  • рджреЛ рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреВрдЯреА рд╣реБрдИ рдХреЙрд▓ рджреЛрд╣рд░рд╛рдПрдВред

рдЗрди рдЪрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде, рд╣рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░рддрджрд╛рд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ!

рд▓реЙрдЧрд┐рдВрдЧ


рдСрдЯреЛрдЯреИрд╕реНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реА рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рд╕рдордЭрджрд╛рд░ рд▓реЙрдЧрд┐рдВрдЧ рдХреА рдХрдореА, рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ рдЬрдм рдкрд░реАрдХреНрд╖рдг рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдмреИрдареЛ рдФрд░ рдЖрд╢реНрдЪрд░реНрдп рдХрд░реЛ рдХрд┐ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рдЧрд┐рд░рд╛ рд╣реИред

рдЙрдкрд░реЛрдХреНрдд рдЕрд╡рд░реЛрдзрди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╣рдо рдПрдХ рдХрд╛рдлреА рд╡реНрдпрд╛рдкрдХ рд▓реЙрдЧрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗред

рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ:





рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХрд╛рд╕реНрдкреНрд░реЗрд╕реЛ рдЖрдкрдХреЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИ, рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ, рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЖрджрд┐ред

рдПрд╕реНрдкреНрд░реЗрд╕реЛ рдЯреЗрд╕реНрдЯ рдореЗрдВ рдлреБрд▓ рдЕрджрдм


рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдПрд╕реНрдкреНрд░реЗрд╕реЛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЕрджрдм рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред рд╣рд╛рдБ, рд╡рд╣рд╛рдБ рдПрдбреАрдмреА рдЦреЛрд▓ рд╣реИ , рд▓реЗрдХрд┐рди рдкреВрд░реНрдг рдПрдбреАрдмреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдХрд╛рд░реНрдп рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдХрд╛рдо рдЖ рд╕рдХрддреА рд╣реИрдВред

рд╣рдордиреЗ рдПрдХ рдЕрд▓рдЧ AdbServer рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдИ рд╣реИ, рдЬреЛ рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдкреВрд░реА рдЕрджрдм рд▓реМрдЯрд╛рдПрдЧреА ! рдКрдкрд░ рджрд┐рдП рдЧрдП рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХреИрд╕реЗ рд▓рдбрд╝реЗ рдФрд░ рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП ( рдПрдХ рдФрд░ рджреЛ ) рдХреИрд╕реЗ рдЧрдПред

Android OS рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ


рдХреИрд╕реНрдкрд░рд╕реНрдХреА рд▓реИрдм рдореЗрдВ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ рдРрд╕реА рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдУрдПрд╕ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛: рдХреБрдЫ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗрдЯ рдХрд░рдирд╛, рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдлрд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛, рдЖрджрд┐ред рдЗрд╕рдиреЗ рд╣рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рд╕рднреА рдХрд╛рдореЛрдВ рдХреЛ рдорд╛рдирдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ред рдПрдХ рдПрдХрд▓ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ - рдХреНрд▓рд╛рд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреНрдпрд╛ рд╣реИрдВ рдФрд░ рдпреЗ рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдЖрдЗрдП рдЖрдкрдХреЛ рдПрдХ рдЪрд┐рддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдпреЗрдЧреЛрд░ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рд╕реЗ рдХреБрдЫ рд╕реНрд▓рд╛рдЗрдбреНрд╕ рджреЗрддреЗ рд╣реИрдВ:









рдкреНрд░рд▓реЗрдЦрди рдпрд╣рд╛рдБ рд╣реИ ред

рд╣реБрдб рдХреЗ рддрд╣рдд, AdSServer рдФрд░ UiAutomator рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди! рдпрджрд┐ рдЖрдк рдЕрдЪрд╛рдирдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЖрдк рд╡рд┐рдиреНрдпрд╛рд╕рдХрд░реНрддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

DocLoc рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ (рдкреНрд░рд▓реЗрдЦрди рдФрд░ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг)


рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдБ рдЬрд╣рд╛рдБ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рд╣реЛрддрд╛ рд╣реИ, рдкреНрд░рд╛рдпрдГ рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддрд╛рдХрд┐ рдЕрдиреБрд╡рд╛рджрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рднреНрд░рдо рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЖрдЦрд┐рд░рдХрд╛рд░, рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реЗрдЦрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣рд╛рдВ рдФрд░ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рджреЗрдЦреЗ рдмрд┐рдирд╛ рдПрдХ рд╕рд╣реА рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╕рднреА рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЬрд▓реНрджреА рдФрд░ рддреБрд░рдВрдд рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╡рд╛рдж рдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╕рд╣рд┐рддред рдЖрдкрдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдХреА рд╕реНрдХреНрд░реАрди рдкрд░ рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рднреА рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдпрд╣ рд╕рдм рдЖрдкрдХреЛ рдХрд╛рд╕реЗрдкреЛ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝реЗрдВред

рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдФрд░ рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕


рдХрд╛рд╕реНрдкреНрд░реЗрд╕реНрд╕реЛ рдХреЗ рдкреНрд░рдореБрдЦ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдРрд╕рд╛ рдбреАрдПрд╕рдПрд▓ рдмрдирд╛рдирд╛ рдерд╛ рдЬреЛ рдЖрдкрдХреЛ рд╕рд╣реА рдкрд░реАрдХреНрд╖рдг рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдФрд░ рдЙрдирдХреЗ рд╕рд╣реА рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд░реЗрдЧрд╛ред

рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдХрдИ рдкреНрд░рддрд┐рдпрд╛рдВ рддреЛрдбрд╝ рджреА рдЧрдИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдРрд╕реЗ рдирд┐рдпрдо рдХрд╣реАрдВ рднреА рдирд╣реАрдВ рдкрд╛рдПрдВрдЧреЗред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЖрдк рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдкреГрд╖реНрда рд╡рд╕реНрддреБ рдкрд░ рд▓реЗрдЦред

рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдХреЛрдИ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдФрд░ рдЗрди рдореБрджреНрджреЛрдВ рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдФрд░ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдФрд░ рд╡реАрдбрд┐рдпреЛ рджреЛ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд╛рд╢рд╛ рдмреНрд▓рд┐рдиреЛрд╡ рдиреЗ рдХреЛрдЯрд▓рд┐рди рдбреАрдПрд╕рдПрд▓ рдФрд░ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рд▓реЗрдЦ рд▓рд┐рдЦрд╛ред рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдбреАрдПрд╕рдПрд▓ рдХрд╛рд╕рд╛рдкреЛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореЛрдмрд┐рдпрд╕ рдореЗрдВ рд╡рд╛рдкрд╕, рд╣рдордиреЗ рдСрдЯреЛрдЯреИрд╕реНрдЯреНрд╕ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рддреЗрдЬ рдХрд░рдиреЗ рдФрд░ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рддреЗ рд╣реБрдП PullRequest рдореЗрдВ рдЬрд▓реНрджреА рд╕реЗ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред рд╣рдо рдпрд╣рд╛рдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ ред

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ, рддреЛ рдХреИрд╕реЗ рдФрд░ рдХреИрд╕реЗ рдХрд░реЗрдВ


рдореБрдЦреНрдп рдЖрдХрд░реНрд╖рдг рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдХрд╛рдУ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдХрдИ рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ рдФрд░ рдЖрдк рдХрд╛рд╕реНрдкреНрд░реЗрд╕реНрдХреЛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ! рдмрд╕ рдЕрдкрдиреЗ рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕реЗрд╕ рдХреЛ рд╕реНрдкреЗрд╢рд▓ рдЯреЗрд╕реНрдЯрдХреЗрд╕ рдХреНрд▓рд╛рд╕ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрдВред рдФрд░ рд╡рд╣ рд╕рдм рд╣реИ!

рдпрд╣ рдерд╛:

 @RunWith(AndroidJUnit4::class) class OpenHomeScreenTest { private val mainScreen = MainScreen() private val homeScreen = HomeScreen() @get:Rule val activityTestRule = ActivityTestRule(MainActivity::class.java, true, false) @Test fun test() { ... } } 

рдпрд╣ рдмрди рдЧрдпрд╛:

 @RunWith(AndroidJUnit4::class) class OpenHomeScreenTest : TestCase() { private val mainScreen = MainScreen() private val homeScreen = HomeScreen() @get:Rule val activityTestRule = ActivityTestRule(MainActivity::class.java, true, false) @Test fun test() { ... } } 

рдФрд░ рдЕрдЧрд░ рдЖрдкрдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдПрдХ рд╕рдорд╛рди TestRule рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдХрд╛рд╕реНрдкреНрд░реЗрд╕реЛ рдПрдХ рдмрд╣реБрдд рд╣реА рд▓рдЪреАрд▓рд╛ рдФрд░ рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рдврд╛рдВрдЪрд╛ рд╣реИред рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рдХреИрд╕реНрдкреЗрд░реЛ рд╡рд░реНрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИред рдпрджрд┐ рдЖрдк рдХреБрдЫ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

 @RunWith(AndroidJUnit4::class) class OpenHomeScreenTest : TestCase( Kaspresso.Builder.default().apply { viewBehaviorInterceptors.add(MyInterceptor()) flakySafetyParams.timeoutMs = 1_000 } ) { private val mainScreen = MainScreen() private val homeScreen = HomeScreen() @get:Rule val activityTestRule = ActivityTestRule(MainActivity::class.java, true, false) @Test fun test() { ... } } 

рдпрд╣реА рд╣реИ, Kaspresso.Builder TestCase рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЬрд╣рд╛рдВ рдЖрдк рдЕрдкрдиреА рдЬрд╝рд░реВрд░рдд рдХреА рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред

рддрддреНрдХрд╛рд▓ рдпреЛрдЬрдирд╛


рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪреАрдЬреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ:

рд▓реБрднрд╛рдирд╛ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрджрдо (рд╣реЗрдбрд╣рдВрдЯрд░ рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдирдорд╕реНрддреЗ)


рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рд╣рдо рдореИрд░рд╛рдерди рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рдХреГрддрд┐ рдХреА рдПрд▓реНрдпреЛрд░ рд░рд┐рдкреЛрд░реНрдЯ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:



PR # 4 рдореЗрдВ рд╡рд┐рд╡рд░рдг

PS PR рдкрд╣рд▓реЗ рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг 1.0.1 рдореЗрдВ рд╣реИ, рдЕрдм рд╣рдо рдореИрд░рд╛рдерди рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд PR рддреИрдпрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдкреАрдПрд╕рдПрд╕ред рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдореЗрдВ рд▓реЙрдЧ рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЯреБрдХрдбрд╝реЗ рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдФрд░ "рдЧрд┐рд░" рдЪрд░рдг рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЬреЛрдбрд╝реЗрдВред

рдЙрдиреНрдирдпрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдкрд░реАрдХреНрд╖рдг


рдЕрдХреНрд╕рд░ рдЖрд╡реЗрджрди рдЙрдиреНрдирдпрди рдХреА рд╢реБрджреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╣рд╛рдВ, рдХреБрдЫ рдЬрд╛рдВрдЪреЛрдВ рдХреЛ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рд╕рдВрдкреВрд░реНрдг рд░реВрдк рд╕реЗ рд╕рдВрдкреВрд░реНрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╢рд╛рдВрдд рд░рд╣рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдПрдХ рд╢реБрджреНрдз рдПрд╕реНрдкреНрд░реЗрд╕реЛ рдкрд░ рдРрд╕рд╛ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рд╣рдо рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП APK рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЖрдк рдХрд┐рд╕реА рддрд░рд╣ рдзрд╛рд╡рдХ рдХреЗ рд╕рд╛рде рдЫрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕реБрдзрд╛рд░ рдХреИрд╕реЗ рджрд┐рдЦреЗрдВрдЧреЗ рдФрд░ рд╡реЗ рдХрд┐рддрдиреЗ рд╕реНрдерд┐рд░ рд╣реЛрдВрдЧреЗред
рдЗрд╕рд▓рд┐рдП, рдХрд╛рд╕реЗрдкреЛ рдореЗрдВ, рд╣рдо рдпреВрдЖрдИрдУрдЯреЛрдореЗрдЯрд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рддреИрдпрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╢реАрд░реНрд╖ рдкрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рднреА рд╕рдорд╛рди рдкрд░рд┐рдЪрд┐рдд рдбреАрдПрд╕рдПрд▓ рдЪрд┐рдкрдХреЗ рд╣реЛрдВрдЧреЗ, рдЬреЛ рдХрд╛рдХрд╛рдУ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ рдФрд░ рдШреБрд╕рдкреИрда рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рдеред

рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ


Kaspresso
AdbServer
рдЪреИрдЯ рдХрд░реЗрдВ , рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЖрдкрдХреЗ рд╕рднреА рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдореЗрдВ рд╣рдореЗрд╢рд╛ рдЦреБрд╢ рд░рд╣реЗрдВрдЧреЗ

рдзрдиреНрдпрд╡рд╛рдж


рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдзрдиреНрдпрд╡рд╛рджред
рдпрд╣ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рдерд╛, рд▓реЗрдХрд┐рди рд▓рд╛рдирдд рд╣реИ!





рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп


рд╣рдорд╛рд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдХрд╛рд╕реНрдкреЗрд░реЗрд╕реЛ рдФрд░ рдПрдбрдмрд╕реЗрд╡рд░ рдЖрдкрдХреЗ рдЬреАрд╡рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдПрдВрдЧреЗред
рд╣рдо рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ, Yishuyam рдФрд░ PulRequest рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд░рддреЗ рд╣реИрдВ!
рдФрд░ рдХреГрдкрдпрд╛ рдПрдХ рддрд╛рд░рд╛рдВрдХрди рд░рдЦрдирд╛ рдордд рднреВрд▓рдирд╛, рдХреГрдкрдпрд╛!

рдкреАрдПрд╕ рдФрд░ рдмрд╣реБрдд рдЕрдВрдд рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкреЛрд▓ =)

Source: https://habr.com/ru/post/hi467617/


All Articles