Android рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг

рдкрд░рд┐рдЪрдп



рдЫрд╡рд┐

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



рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рдПрдХ рдЫреЛрдЯрд╛ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦреЗрдВрдЧреЗ рдФрд░ рдЙрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗред рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП jdk, android sdk, Eclipse рдФрд░ ADT рдкреНрд▓рдЧрдЗрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред



рднрд╛рдЧ рдПрдХ SpeedConverterред



рдЫрд╡рд┐рдЫрд╡рд┐



рд╣рдорд╛рд░рд╛ рдЖрджрд┐рдо рдЕрдиреБрдкреНрд░рдпреЛрдЧ "рдХрд┐рд▓реЛрдореАрдЯрд░ рдкреНрд░рддрд┐ рдШрдВрдЯрд╛" рдХреЛ "рдореАрдЯрд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб" рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░реЗрдЧрд╛, рдФрд░ рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рдорд╛рди рдХреА рдЧрдгрдирд╛ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ рддреЛ рд╕рдВрджреЗрд╢ рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рднреА EditText рдореЗрдВ рд╕реНрдкреАрдб рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░реЗрдЧрд╛ рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред рд╣рдо рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрдВрдЧреЗред



XML рд▓реЗрдЖрдЙрдЯ рдлрд╝реЙрд░реНрдо:

<? xml рд╕рдВрд╕реНрдХрд░рдг = "1.0" рдПрдиреНрдХреЛрдбрд┐рдВрдЧ = "utf-8" ? >

< LinearLayout xmlns: android = " schemas.android.com/apk/res/android "

Android: рдУрд░рд┐рдПрдВрдЯреЗрд╢рди = "рд╡рд░реНрдЯрд┐рдХрд▓"

рдПрдВрдбреНрд░реЙрдЗрдб: рд▓реЗрдЖрдЙрдЯ_ рдПрдХреНрд╕рдкреЛрдЬрд╝рд░ = "fill_parent"

Android: Layout_height = "fill_parent"

Android: рдкреИрдбрд┐рдВрдЧ = "12 рдбреАрдкреА" >

< рдкрд╛рда рджреГрд╢реНрдп

Android: id = "@ + id / textKmPerHour"

Android: text = "@ string / kmh"

рдПрдВрдбреНрд░реЙрдЗрдб: рд▓реЗрдЖрдЙрдЯ_ рдПрдХреНрд╕рдкреЛрдЬрд╝рд░ = "wra_content"

Android: layout_height = "wra_content" />

< EditText

Android: id = "@ + id / editKmPerHour"

Android: Layout_height = "wra_content"

рдПрдВрдбреНрд░реЙрдЗрдб: рд▓реЗрдЖрдЙрдЯ_ рдПрдХреНрд╕рдкреЛрдЬрд╝рд░ = "match_parent"

Android: inputType = "numberDecimal"

Android: рд╕рдВрдЦреНрдпрд╛рддреНрдордХ = "рджрд╢рдорд▓рд╡" />

< рдкрд╛рда рджреГрд╢реНрдп

Android: id = "@ + id / textMetersPerSec"

Android: рдкрд╛рда = "@ рд╕реНрдЯреНрд░рд┐рдВрдЧ / рдПрдордПрд╕"

рдПрдВрдбреНрд░реЙрдЗрдб: рд▓реЗрдЖрдЙрдЯ_ рдПрдХреНрд╕рдкреЛрдЬрд╝рд░ = "wra_content"

Android: Layout_height = "wra_content"

Android: paddingTop = "4dp" />

< EditText

Android: id = "@ + id / editMetersPerSec"

Android: Layout_height = "wra_content"

рдПрдВрдбреНрд░реЙрдЗрдб: рд▓реЗрдЖрдЙрдЯ_ рдПрдХреНрд╕рдкреЛрдЬрд╝рд░ = "match_parent"

Android: inputType = "numberDecimal"

Android: рд╕рдВрдЦреНрдпрд╛рддреНрдордХ = "рджрд╢рдорд▓рд╡" />

</ LinearLayout >



* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред


рдЗрд╕рдХреЗ рдмрд╛рдж, рдкреНрд░рддрд┐ рдШрдВрдЯреЗ рдХрд┐рд▓реЛрдЯреЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдХрд┐рд▓реЛрдореАрдЯрд░ рдкреНрд░рддрд┐ рдШрдВрдЯреЗ рд╢реНрд░реЛрддрд╛ рд╕реЗрдЯ рдХрд░реЗрдВ, рдФрд░ рдЬрдм рдШрдЯрдирд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЧрддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВред рдПрдХ рд╕рдХреНрд░рд┐рдп рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреАрдмреЛрд░реНрдб рдХреЗ рд╕рд╛рде onKey () рдирд╣реАрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рдмрд╛рдж рдореЗрдВ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рджреВрд╕рд░рд╛ EditText рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред



// рдкреНрд░рддрд┐ рдШрдВрдЯреЗ рдХрд┐рд▓реЛрдореАрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдЕрдк рд╢реНрд░реЛрддрд╛

editKmPerHour.setOnKeyListener ( рдирдпрд╛ OnKeyListener () {

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреВрд▓рд┐рдпрди onKey (рджреЗрдЦреЗрдВ v, int рдХреАрдХреЛрдб, KeyEvent рдШрдЯрдирд╛ ) {

рдпрджрд┐ ( рдИрд╡реЗрдВрдЯ .getAction () == KeyEvent.ACTION_UP) {

рдХреЛрд╢рд┐рд╢ рдХрд░реЛ {

Double kmPerHour = Double.parseDouble (editKmPerHour)

.getText () .String ());

рдбрдмрд▓ рдореАрдЯрд░рдкреЗрд░рд┐рд╕ = kmPerHour * 0.277777777777777778;

editMeterPerSec.setText ( рдирдпрд╛ рджреЛрд╣рд░рд╛ (рдореАрдЯрд░рдкреЗрдпрд░))

.toString ());

} рдХреИрдЪ (рдирдВрдмрд░рдлрд╝реЙрд░реНрдореЗрдЯ рдЕрдкрд╡рд╛рдж рдИ) {

editMeterPerSec.setText (R. string .errorMsg);

Log.d (рд▓реЙрдЧ, "рдИ:" + рдИ);

}

рд╕рдЪ рд▓реМрдЯрдирд╛ ;

}

рдЭреВрдареЗ рд▓реМрдЯрдирд╛ ;

}

};)



* рдЗрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред


рдЕрдм рд╣рдо рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред



рднрд╛рдЧ рджреЛ SpeedConverterTestред



Android рдЯреЗрд╕реНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ


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



рдЫрд╡рд┐



рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рди рд╕реЗрдЯ рдХрд░реЗрдВ:

рдФрд░ рд╕рдорд╛рдкреНрдд рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред



рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдХреНрд▓рд╛рд╕ рдмрдирд╛рдирд╛


рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ src / рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ, рд╣рдо рдПрдХ рдирдпрд╛ рд╡рд░реНрдЧ рдмрдирд╛рдПрдВрдЧреЗ New> Class ред рд╣рдо рдЗрд╕реЗ SpeedConverterTest рдХрд╣рддреЗ рд╣реИрдВ рдФрд░ Super.tass рдХреЗ рд░реВрдк рдореЗрдВ android.test.ActivityInstrumentationTestCase2 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░рд╛ рд╕рдВрд╡рд╛рдж рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:



рдЫрд╡рд┐



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



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



рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдкреАрдбрдХрдиреЗрдХреНрдЯрдЯреЗрд╕реНрдЯ () {

рд╕реБрдкрд░ ( "com.pyjioh" , SpeedConverterред рд╡рд░реНрдЧ );

}


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реЗрдЯрдЕрдк () рд╡рд┐рдзрд┐, рдЬреЗрдпреВрдирд┐рдЯ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИ, рдЬрд┐рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо рдЗрд╕рдореЗрдВ рдЪрд░ рдХреЛ рдЖрд░рдВрдн рдХрд░реЗрдВрдЧреЗред



@Override

рд╕рдВрд░рдХреНрд╖рд┐рдд рд╢реВрдиреНрдп рд╕реЗрдЯрдЕрдк () рдЕрдкрд╡рд╛рдж {

// TODO рдСрдЯреЛ-рдЬрдирд░реЗрдЯ рд╡рд┐рдзрд┐ рд╕реНрдЯрдм

super.setUp ();

рдЧрддрд┐рд╡рд┐рдзрд┐ = getActivity ();

editKmPerHour = (EditText) рдЧрддрд┐рд╡рд┐рдзрд┐

.findViewById (com.pyjioh.R.id.editKmPerHour);

editMeterPerSec = (EditText) рдЧрддрд┐рд╡рд┐рдзрд┐

.findViewById (com.pyjioh.R.id.editMetersPerSec);

}


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



рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рдкрд░реАрдХреНрд╖рдгрдХрдВрдЯреНрд░реЛрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ () {

assertNotNull (рдЧрддрд┐рд╡рд┐рдзрд┐);

assertNotNull (editKmPerHour);

assertNotNull (editMeterPerSec);

}


ViewAsserts рд╕реЗ assertOnScreen () рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдорд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рдг рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред



рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рдкрд░реАрдХреНрд╖рдгрдХрдВрдЯреНрд░реЛрд▓ рдЕрджреГрд╢реНрдп () {

ViewAsserts.assertOnScreen (editKmPerHour.getRootView (), editMeterPerSec);

ViewAsserts.assertOnScreen (editMeterPerSec.getRootView (), editKmPerHour);

}



рдЪрд╛рд╣реЗ рдЖрд╡реЗрджрди рдЦрд╛рд▓реА EditTexts рд╕реЗ рд╢реБрд░реВ рд╣реЛред



рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рдкрд░реАрдХреНрд╖рдгрд╕реНрдЯрд╛рд░реНрдЯрд┐рдВрдЧ рдЦрд╛рд▓реА () {

рдореБрдЦрд░ ( "editKmPerHour рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реИ" , "" , editKmPerHour.getText ()

.toString ());

assertEquals ( "editMeterPerSec рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реИ" , "" , editMeterPerSec

.getText () .String ());

}



рдЕрдм рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рдореА / рдПрд╕ рдХреЗ рдХрд┐рдореА / рдПрд╕ рдХреЗ рд╕рд╣реА рд░реВрдкрд╛рдВрддрд░рдг рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рд╣рдо TouchUtils.tapView (..) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдирд┐рдпрдВрддреНрд░рдг рдкрд░ рдПрдХ рд╕реНрдкрд░реНрд╢ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддрд╛ рд╣реИ, рдФрд░ KeyEvent.KEYCODE_BACK рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреАрдмреЛрд░реНрдб рдХреЛ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИред рд╢реВрдиреНрдп testConvertMsToKmh тАЛтАЛ() рд╡рд┐рдзрд┐ рд╕рдорд╛рди рджрд┐рдЦрддреА рд╣реИред



рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рдкрд░реАрдХреНрд╖рдгрдХреЗрдирд╡рд░реНрдЯрдХреЗрдорд╣реЛрдореНрд╕ () {

TouchUtils.tapView ( рдпрд╣ , EditKmPerHour);

sendKeys (KeyEvent.KEYCODE_BACK, KeyEvent.KEYCODE_1, KeyEvent.KEYCODE_0)

KeyEvent.KEYCODE_0);



рдбрдмрд▓ рдореАрдЯрд░рдкрд░реНрдХ;

рдХреЛрд╢рд┐рд╢ рдХрд░реЛ {

meterPerSec = Double.parseDouble (editMeterPerSec.getText ()

.toString ());

} рдкрдХрдбрд╝ (рдЕрдкрд╡рд╛рдж рдИ) {

рдореАрдЯрд░рдкреНрд░рд┐рд╕реЗрдХ = -1;

}



рдореБрдЦрд░ ( "100 рдХрд┐рдореА / рдШрдВрдЯрд╛ 27.778 рдореА / рд╕реЗ" рдирд╣реАрдВ рд╣реИ , рдореАрдЯрд░рдкреЗрдпрд░> 27.7

&& рдореАрдЯрд░рдкреЗрдпрд░рд╕реЗрдХ <27.8);

}



рдЕрдВрддрд┐рдо рдкрд░реАрдХреНрд╖рдг рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдорд┐рд▓рддрд╛ рд╣реИред



рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рдкрд░реАрдХреНрд╖рдгрдЧреЗрдЯ () {

TouchUtils.tapView ( рдпрд╣ , EditKmPerHour);

sendKeys (KeyEvent.KEYCODE_1, KeyEvent.KEYCODE_DEL);



рдореБрдЦрд░ ( "рддреНрд░реБрдЯрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП!"

activity.getString (com.pyjioh.Rред string .errorMsg),

editMeterPerSec.getText () .String ());

}


рд╣рдорд╛рд░рд╛ рдкрд░реАрдХреНрд╖рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ: рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЪрд▓рд╛рдПрдБ> Android JUnit рдЯреЗрд╕реНрдЯ ред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛ред







рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдордиреЗ рдЕрдкрдиреЗ рддреБрдЪреНрдЫ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред



рдФрд░ рдХреНрдпрд╛?



рд╣рд╛рдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдмрд╛рдХреА рд╕рдм рдХреБрдЫред Android.test рдврд╛рдВрдЪреЗ рдХреА рдХреНрд╖рдорддрд╛рдПрдВ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧрддрд┐рд╡рд┐рдзрд┐рдЗрдиреНрд╕реНрдЯрд┐рдЯреЗрд╢рдирдЯреЗрд╕реНрдЯрдХреЗрдЬрд╝ 2 рдХреЗ рд╡рд┐рдкрд░реАрдд, рдПрдХреНрдЯрд┐рд╡рд┐рдЯреАрдпреВрдиреЗрдЯрдЯреИрд╕реНрдЯ рдХреНрд▓рд╛рд╕, рдЖрдкрдХреЛ рдореЙрдХ рдХреЙрдиреНрдЯреЗрдХреНрдЯ рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрд▓рдЧрд╛рд╡ рдореЗрдВ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╕рднреА рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдЯреВрд▓ рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ developer.android.com рд╡реЗрдмрд╕рд╛рдЗрдЯ рджреЗрдЦреЗрдВред



SpeedConverter рдФрд░ SpeedConverterTest рдХрд╛ рд╕реЛрд░реНрд╕ рдХреЛрдб code.google.com рдкрд░ рд╣реИ



All Articles