คำถามติดแท็ก android-espresso

5
Kotlin และ ActivityTestRule ใหม่: @Rule ต้องเป็นสาธารณะ
ฉันพยายามทำการทดสอบ UI สำหรับแอพ Android ของฉันใน Kotlin เนื่องจากระบบใหม่ที่ใช้ ActivityTestRule ฉันไม่สามารถทำงานได้: มันคอมไพล์อย่างถูกต้องและในขณะรันไทม์ฉันได้รับ: java.lang.Exception: The @Rule 'mActivityRule' must be public. at org.junit.internal.runners.rules.RuleFieldValidator.addError(RuleFieldValidator.java:90) at org.junit.internal.runners.rules.RuleFieldValidator.validatePublic(RuleFieldValidator.java:67) at org.junit.internal.runners.rules.RuleFieldValidator.validateField(RuleFieldValidator.java:55) at org.junit.internal.runners.rules.RuleFieldValidator.validate(RuleFieldValidator.java:50) at org.junit.runners.BlockJUnit4ClassRunner.validateFields(BlockJUnit4ClassRunner.java:170) at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:103) at org.junit.runners.ParentRunner.validate(ParentRunner.java:344) at org.junit.runners.ParentRunner.<init>(ParentRunner.java:74) at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:55) at android.support.test.internal.runner.junit4.AndroidJUnit4ClassRunner.<init>(AndroidJUnit4ClassRunner.java:38) at android.support.test.runner.AndroidJUnit4.<init>(AndroidJUnit4.java:36) at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:417) at android.support.test.internal.runner.junit4.AndroidAnnotatedBuilder.buildAndroidRunner(AndroidAnnotatedBuilder.java:57) at android.support.test.internal.runner.junit4.AndroidAnnotatedBuilder.runnerForClass(AndroidAnnotatedBuilder.java:45) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57) …

9
ขัดแย้งกับการพึ่งพา 'com.android.support:support-annotations' เวอร์ชันที่แก้ไขแล้วสำหรับแอป (23.1.0) และแอปทดสอบ (23.0.1) แตกต่างกัน
เมื่อสร้างฉันได้รับข้อผิดพลาดต่อไปนี้: Conflict with dependency 'com.android.support:support-annotations'. Resolved versions for app (23.1.0) and test app (23.0.1) differ. นี่คือการพึ่งพาผู้เรียนของฉัน dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:support-v4:23.1.0' compile 'com.android.support:appcompat-v7:23.1.0' compile 'com.android.support:design:23.1.0' compile 'com.android.support:cardview-v7:23.1.0' compile 'com.android.support:recyclerview-v7:23.1.0' compile 'com.squareup.retrofit:retrofit:1.9.0' compile 'com.squareup.okhttp:okhttp:2.4.0' compile 'com.squareup.picasso:picasso:2.5.2' compile 'com.jakewharton:butterknife:7.0.1' compile 'com.squareup:otto:1.3.8' compile 'com.snappydb:snappydb-lib:0.5.2' compile 'com.esotericsoftware.kryo:kryo:2.24.0' compile 'com.google.dagger:dagger:2.0.1' apt …

2
Google Espresso หรือ Robotium [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันต้องใช้เครื่องมือทดสอบ UI อัตโนมัติและฉันสับสนระหว่างการใช้ Robotium กับ Google Espresso อะไรคือความแตกต่างที่สำคัญระหว่างทั้งสอง? มีคุณสมบัติที่มีอยู่ในตัวเดียว แต่ไม่มีคุณสมบัติอื่น ๆ หรือไม่?

13
เอสเปรสโซ: Thread.sleep ();
เอสเปรสโซอ้างว่าไม่จำเป็นThread.sleep();แต่รหัสของฉันใช้ไม่ได้เว้นแต่ฉันจะรวมไว้ ฉันกำลังเชื่อมต่อกับ IP ขณะเชื่อมต่อกล่องโต้ตอบความคืบหน้าจะปรากฏขึ้น ฉันต้องการsleepรอให้กล่องโต้ตอบปิด นี่คือตัวอย่างการทดสอบของฉันที่ฉันใช้: IP.enterIP(); // fills out an IP dialog (this is done with espresso) //progress dialog is now shown Thread.sleep(1500); onView(withId(R.id.button).perform(click()); ฉันได้พยายามรหัสนี้ด้วยและโดยไม่ต้องThread.sleep();แต่ก็กล่าวว่าR.id.Buttonไม่ได้อยู่ วิธีเดียวที่ฉันจะทำให้มันทำงานได้คือการนอนหลับ นอกจากนี้ฉันได้ลองแทนที่Thread.sleep();ด้วยสิ่งที่ชอบgetInstrumentation().waitForIdleSync();และยังไม่มีโชค นี่เป็นวิธีเดียวที่จะทำได้หรือไม่? หรือฉันขาดอะไรไป? ขอบคุณล่วงหน้า.

9
ใช้ Espresso เพื่อคลิกดูภายในรายการ RecyclerView
ฉันจะใช้ Espresso เพื่อคลิกมุมมองที่ต้องการภายในรายการRecyclerView ได้อย่างไร ฉันรู้ว่าฉันสามารถคลิกรายการที่ตำแหน่ง 0 โดยใช้: onView(withId(R.id.recyclerView)) .perform(RecyclerViewActions.actionOnItemAtPosition(0, click())); แต่ฉันต้องคลิกที่มุมมองเฉพาะภายในรายการนั้นไม่ใช่ในรายการนั้นเอง ขอบคุณล่วงหน้า. - แก้ไข - เพื่อให้แม่นยำยิ่งขึ้น: ฉันมีRecyclerView ( R.id.recycler_view) ซึ่งรายการคือCardView ( R.id.card_view) ภายในแต่ละCardViewฉันมีสี่ปุ่ม (เหนือสิ่งอื่นใด) และฉันต้องการคลิกที่ปุ่มใดปุ่มหนึ่ง ( R.id.bt_deliver) ฉันต้องการใช้คุณสมบัติใหม่ของ Espresso 2.0 แต่ไม่แน่ใจว่าเป็นไปได้ ถ้าเป็นไปไม่ได้ฉันต้องการใช้สิ่งนี้ (โดยใช้รหัส Thomas Keller): onRecyclerItemView(R.id.card_view, ???, withId(R.id.bt_deliver)).perform(click()); แต่ไม่รู้จะใส่เครื่องหมายคำถามอะไรดี

3
จุดประสงค์ของคำอธิบายประกอบ @SmallTest, @MediumTest และ @LargeTest ใน Android คืออะไร
ฉันเพิ่งเคยใช้ Android และเคยเห็นโค้ดตัวอย่างที่ใช้คำอธิบายประกอบเหล่านี้ ตัวอย่างเช่น: @SmallTest public void testStuff() { TouchUtils.tapView(this, anEditTextView); sendKeys("H E L P SPACE M E PERIOD"); assertEquals("help me.", anEditTextView.getText().toString()); } คำอธิบายประกอบนั้นทำอะไรได้บ้าง?

6
ตรวจสอบว่ากล่องโต้ตอบปรากฏขึ้นพร้อมกับ Espresso หรือไม่
ฉันพยายามที่จะเขียนการทดสอบบางอย่างกับใหม่หุ่นยนต์ทดสอบชุด (Espresso) แต่ฉันไม่พบข้อมูลใด ๆ เกี่ยวกับวิธีตรวจสอบว่ากล่องโต้ตอบปรากฏขึ้นและดำเนินการบางอย่างกับมันหรือไม่ (เช่นการคลิกปุ่มบวกและลบเป็นต้น) โปรดทราบว่ากล่องโต้ตอบอาจปรากฏขึ้นโดย a WebViewไม่ใช่โดยแอปพลิเคชันนั้นเอง ความช่วยเหลือใด ๆ จะได้รับการชื่นชม ฉันต้องการลิงก์หรือโค้ดตัวอย่างสำหรับข้อมูลเบื้องต้น: ตรวจสอบว่ากล่องโต้ตอบปรากฏขึ้นหรือไม่ คลิกที่ปุ่มโต้ตอบ โต้ตอบกับมุมมองภายในของกล่องโต้ตอบ (หากเป็นมุมมองที่กำหนดเอง) Preform คลิกภายนอกกล่องโต้ตอบและตรวจสอบว่ากำลังแสดงหรือไม่ (ตัวอย่างเช่นหากsetCancelable(false)ถูกเรียกในตัวสร้างไดอะล็อกและเราต้องการตรวจสอบ) ขอบคุณในคำแนะนำ!

5
การจับคู่ (not (isDisplayed ())) ล้มเหลวด้วย NoMatchingViewException
ฉันพยายามทดสอบว่าไม่มีมุมมอง UI ตัวเลือกมุมมองมีดังนี้: public static ViewInteraction onMyTestUi() { return onView(withId(R.id.myTestId)); } ตัวเลือกทำงานได้ดีเพื่อตรวจสอบว่ามุมมองนั้นแสดงอยู่หรือไม่ แต่ให้ข้อผิดพลาดในการตรวจสอบว่ามุมมองไม่แสดง ฉันใช้สิ่งนี้ดังนี้: onMyTestUi().check(matches(not(isDisplayed()))); แต่ฉันได้รับข้อผิดพลาดต่อไปนี้: com.google.android.apps.common.testing.ui.espresso.NoMatchingViewException: ไม่พบมุมมองในลำดับชั้นที่ตรงกัน: กับ id: คือหากมุมมองเป้าหมายไม่ได้เป็นส่วนหนึ่งของลำดับชั้นมุมมองคุณอาจต้องใช้ Espresso.onData เพื่อ โหลดจาก AdapterViews ต่อไปนี้: android.widget.ListView {... } มันแปลก ๆ. ฉันกำลังตรวจสอบว่าไม่มี UI และคาดว่าจะไม่พบมุมมองนี้ แล้วทำไม Espresso ถึงโยนข้อผิดพลาด? โปรดแนะนำสิ่งที่อาจเกิดขึ้นที่นี่ ขอบคุณทึ่ง!
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.