คำตอบนี้สำหรับผู้ที่เพิ่งเริ่มทดสอบ Android ฉันจะให้ตัวอย่างง่ายๆสองตัวอย่างเพื่อช่วยให้คุณเห็นว่าการทดสอบทำงานอย่างไร หากคุณทำตามในอีก 10 นาทีข้างหน้าคุณจะพร้อมเริ่มเพิ่มการทดสอบลงในแอปของคุณเอง ฉันคิดว่าคุณจะประหลาดใจว่ามันง่ายแค่ไหน ฉันเป็นอย่างแน่นอน
ข้อมูลเบื้องต้นเกี่ยวกับการทดสอบ Android
มีการทดสอบสองประเภทที่แตกต่างกันที่คุณจะต้องทำ
- การทดสอบหน่วยในพื้นที่ สิ่งเหล่านี้รันภายในเครื่องบน JVM (Java Virtual Machine) เนื่องจากพวกเขาอยู่ในท้องถิ่นจึงมีความรวดเร็ว คุณสามารถใช้เพื่อทดสอบส่วนต่างๆของโค้ดที่ต้องใช้ Java ไม่ใช่ Android API (บางครั้งคุณสามารถสร้างออบเจ็กต์ API ปลอมเพื่อทดสอบสิ่งต่างๆในเครื่องได้ซึ่งเรียกว่าการเยาะเย้ยการเยาะเย้ย
Context
เป็นตัวอย่าง)
- การทดสอบด้วยเครื่องมือ การทดสอบเหล่านี้ทำงานบนอุปกรณ์จริงหรือในโปรแกรมจำลอง ซึ่งทำให้ช้ากว่าการทดสอบในพื้นที่ อย่างไรก็ตามมีความยืดหยุ่นมากกว่าเนื่องจากคุณมี Android API เต็มรูปแบบให้คุณใช้งานได้
สร้างโครงการใหม่และคุณจะเห็นโฟลเดอร์เริ่มต้นต่อไปนี้
ทุกอย่างมีอยู่แล้วและรอให้คุณสร้างแบบทดสอบ ทุกอย่างเรียบร้อยแล้ว!
วิธีสร้างการทดสอบหน่วยในพื้นที่
เปิดExampleUnitTest
ไฟล์ที่แสดงในภาพด้านบน ควรมีลักษณะดังนี้:
public class ExampleUnitTest {
@Test
public void addition_isCorrect() throws Exception {
assertEquals(4, 2 + 2);
}
}
กดลูกศรสีเขียวคู่เพื่อเรียกใช้การทดสอบทั้งหมดหรือลูกศรสีเขียวเดียวเพื่อเรียกใช้เพียงรายการเดียว (ในกรณีนี้มีเพียงการทดสอบเดียวดังนั้นทั้งคู่จึงทำสิ่งเดียวกัน)
ควรผ่านไป (ตราบเท่าที่2 + 2
ยังอยู่4
เมื่อคุณอ่านคำตอบนี้) ขอแสดงความยินดีคุณเพิ่งทำการทดสอบครั้งแรก!
ทำการทดสอบของคุณเอง
ลองเขียนแบบทดสอบของเราเอง ขั้นแรกให้เพิ่มคลาสนี้ในโปรเจ็กต์แอปหลักของคุณเพื่อให้เรามีสิ่งที่จะทดสอบ:
public class MyClass {
public int add(int a, int b) {
return a + b;
}
}
ตอนนี้เปลี่ยนaddition_isCorrect()
วิธีการในคลาสทดสอบให้เหมือนกับรหัสต่อไปนี้ (หรือเพิ่มวิธีอื่นด้วยชื่ออื่น):
public class ExampleUnitTest {
@Test
public void addition_isCorrect() throws Exception {
MyClass myClass = new MyClass();
int result = myClass.add(2, 2);
int expected = 4;
assertEquals(expected, result);
}
}
เรียกใช้อีกครั้งและคุณควรเห็นว่าผ่าน ขอแสดงความยินดีคุณเพิ่งสร้างแบบทดสอบแรกของคุณเอง! (ฉันเดาว่าในทางเทคนิคแล้วมันเป็นของฉัน แต่เดี๋ยวก่อนใกล้พอของฉันเป็นของคุณ)
วิธีสร้างแบบทดสอบด้วยเครื่องมือ
เปิดExampleInstrumentedTest
ไฟล์ ควรมีลักษณะดังนี้:
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() throws Exception {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getTargetContext();
assertEquals("com.example.myapp", appContext.getPackageName());
}
}
กดปุ่มสีเขียวปุ่มใดปุ่มหนึ่งอีกครั้ง
ตราบใดที่คุณมีการเชื่อมต่ออุปกรณ์จริงหรือตั้งค่าตัวจำลองอุปกรณ์ควรเริ่มต้นและเรียกใช้แอปของคุณ ขอแสดงความยินดีคุณเพิ่งทดสอบเครื่องมือครั้งแรกของคุณ!
ทำการทดสอบของคุณเอง
การทดสอบโดยใช้เครื่องมือจะใช้Espressoเพื่อทำการทดสอบ มันเหมือนกับผู้ใช้หุ่นยนต์ตัวน้อยของคุณเองที่คุณสามารถทดสอบแอปของคุณได้ คุณสามารถบอกให้ทำบางอย่างเช่นกดปุ่มหรืออ่านคุณสมบัติของ TextView
คุณสามารถเขียนคำแนะนำสำหรับวิธีการทำแบบทดสอบด้วยมือ แต่เนื่องจากเราเพิ่งเริ่มออกให้ของใช้ฟังก์ชั่นอัตโนมัติบันทึก มันง่ายมาก
ขั้นแรกให้เพิ่มปุ่มลงใน UI ของคุณเพื่อให้เรามีบางอย่างที่ต้องดำเนินการ ฉันทำอย่างนี้:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.myapp.MainActivity">
<Button
android:id="@+id/myButton"
android:text="Click me"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</android.support.constraint.ConstraintLayout>
จากนั้นกดRun> Record Espresso Testในเมนู
หลังจากเริ่มต้นให้คลิกปุ่มในโปรแกรมจำลองจากนั้นเมื่อต้องการเสร็จสิ้นให้เลือกตกลงในกล่องโต้ตอบบันทึก ควรสร้างรหัสทดสอบต่อไปนี้โดยอัตโนมัติ
@LargeTest
@RunWith(AndroidJUnit4.class)
public class MainActivityTest {
@Rule
public ActivityTestRule<MainActivity> mActivityTestRule = new ActivityTestRule<>(MainActivity.class);
@Test
public void mainActivityTest() {
ViewInteraction appCompatButton = onView(
allOf(withId(R.id.myButton), withText("Click me"), isDisplayed()));
appCompatButton.perform(click());
}
}
เยี่ยมมาก! คุณเพิ่งสร้างการทดสอบด้วยเครื่องมือครั้งแรก! มันง่ายมาก คุณควรเพิ่มคำยืนยันเพื่อให้เป็นการทดสอบจริง แต่นั่นก็ค่อนข้างง่ายที่จะทำกับเครื่องบันทึกเช่นกัน ดูวิดีโอนี้เพื่อเจาะลึกลงไปอีกเล็กน้อย
ศึกษาเพิ่มเติม
ฉันจะดูวิดีโอก่อนแล้วจึงอ่านเอกสาร มันเป็นประโยชน์ทั้งหมด ลิงก์สุดท้ายคือชุดบทความที่ครอบคลุมสิ่งสำคัญบางอย่างที่ต้องพิจารณาเมื่อเลือกสิ่งที่จะทดสอบ