일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Fragment 수동 추가
- 코딜리티
- 안드로이드스튜디오
- high order function
- espresso
- 생명주기
- viewholder
- Error:Execution failed for task ':app:mergeDebugResources'
- adapter
- binding adapter
- ActivityTestRule
- 코틀린
- 재사용
- IntentTestRule
- 고차함수
- 안드로이드
- 안드로이드13
- 구분선
- recyclerview
- 안드로이드개발레벨업교과서
- fragment
- 테마 아이콘
- LayoutManger
- searchview
- 스와이프
- Android
- 뷰변경 감지
- ui test
- Fragment에서 Activity의 함수 사용하기
- 리사이클러뷰
Archives
- Today
- Total
룬아님의 취중코딩
androidx.test.espresso.intent.Intents.internalIntended(org.hamcrest.Matcher, androidx.test.espresso.intent.VerificationMode, java.util.List)' on a null object reference 본문
개발/안드로이드 개발
androidx.test.espresso.intent.Intents.internalIntended(org.hamcrest.Matcher, androidx.test.espresso.intent.VerificationMode, java.util.List)' on a null object reference
룬아님 2019. 8. 28. 18:33espresso로 UI 테스트를 하다가 저런 문구를 가진 에러가 났다.
onView(withId(R.id.rv_main_list))
.perform(RecyclerViewActions.actionOnItemAtPosition<RecyclerView.ViewHolder>(0 , click()))
intended(toPackage("패키지 명")) //<- 이곳에서
그 이유는 이렇게 ActivityTestRule을 사용했기 때문이다.
@Rule @JvmField
var mMainActivity = ActivityTestRule(MainActivity::class.java)
IntentsTestRule을 사용해야지 intended, intending 같은 메소드를 사용할 수 있다.
@Rule @JvmField
var mMainActivity = IntentsTestRule(MainActivity::class.java)
그런데 ActivityTestRule과 IntentTestRule이 무엇이 다른지 궁금해져서 검색해보았다.
IntentTestRule를 사용하면 @Test 어노테이션이 달린 각 테스트 전에 자동으로 Espresso-Intents를 초기화 하고 각 테스트가 끝난 이후 Espresso-Intents를 해제합니다.
@Override
protected void afterActivityLaunched() {
Intents.init();
super.afterActivityLaunched();
}
@Override
protected void afterActivityFinished() {
super.afterActivityFinished();
Intents.release();
}
ActivityTestRule을 IntentTestRule 대신 사용할 수 있으나
@Before 및 @After에 각각 Intents.init () 및 Intents.release ()를 수동으로 호출해야한다.
또한 Espresso-intents란
테스트중인 응용 프로그램에서 보낸 인 텐트의 유효성 검사 및 스텁을 활성화한다. Mockito와 비슷하지만 Android 인 텐트 용이다.
그러니 테스트에서 intent가 포함된 테스트를 하기 위해서는 IntentTestRule을 사용하면 되고 필요가 없는 테스트라면 ActivityTestRule을 사용하면 된다.
반응형
'개발 > 안드로이드 개발' 카테고리의 다른 글
리사이클러뷰 변화를 감지하는 registerAdapterDataObserver (0) | 2019.09.06 |
---|---|
getQueryParameter를 사용하면 encode url은 어떻게 될까? (0) | 2019.09.05 |
coordinatorlayout 툴바 flag (0) | 2019.08.27 |
안드로이드 디렉토리 구조 만들기 (feat. MultiMap) (0) | 2019.08.27 |
Searchview가 있는 화면 입장 시에 자동으로 키보드 올리기 (0) | 2019.08.27 |
Comments