당신의 Gradle을이 라이브러리를 추가 : 다음
androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.3'
당신의 에스프레소 시험에서 당신의 광고가 표시됩니다 후 :
Thread.sleep(5000); // Necessary time you needed to show your ads, for example 5 seconds
// After that, press back button to go back
UiDevice mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
mDevice.pressBack();
앱 SDK 수준보다 낮은 실행하는 경우 18이 코드를 사용하여 테스트 디렉토리 src/androidTest/
에 다른 AndroidManifest.xml 파일을 생성하면 테스트는 minSdkVersion=18
(이 UIAutomator에 필요한 API 레벨입니다) : 저도 최근에 문제가 있었다
<?xml version="1.0" encoding="utf-8"?>
<manifest
package="com.monkingme.monkingme"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-sdk
android:minSdkVersion="18"
tools:overrideLibrary="android.support.test.uiautomator.v18" />
</manifest>
행운이 있나요? 나도 여기 붙어있어. – Matej
내 생각에 거기에 행동 사이에 라이브러리 UI (이 경우에는 Google admob)를 포함하는 에스프레소 테스트를 실행하는 직접적인 방법은 없다고 생각합니다. 내 경우에는 자유롭고 유익한 맛이었습니다. 나는 '자유로운'맛의 광고를 표시하는 데 사용되었습니다. 두 가지 액티비티 사이에서 '유료'가 아닌 .. 무료 플레이버의 경우 사용자를 두 번째 화면으로 가져가는 첫 번째 화면에서 요소를 클릭하면 다음 화면의 UI 요소가 표시되는지 테스트하는 데 사용됩니다. 그들은 눈에 보인다. 그러면 테스트는 실패해야하고, 그 반대의 경우는 '유료'버전의 경우이다. 이것을 개선하기위한 제안이 있습니까? – Droidwala
어쩌면 당신은 UI 자동화를 사용할 수 있고 그것을 사용하여 시스템 뒤로 버튼을 누르면 이런 식으로 삽입 광고를 닫을 수 있습니다. 어쨌든, 나는 시간을 쏟고 나서 포기했고, 에스프레소는 아이러니하게도 Robotium보다 나를 더 단조롭다는 것을 증명했다. 그래서 나는 약간의 커스텀 대기 로직을 사용했지만, 곧바로 작동했다. – Matej