인프런 커뮤니티 질문&답변

hhyeok1026님의 프로필 이미지
hhyeok1026

작성한 질문수

냉동코더의 알기 쉬운 Modern Android Development 입문

PracticeA4-종단간 테스트 맛보기 (Espresso)

오버라이드 한 waitFor 메서드와 다른 라이브러리의 차이점은 뭘까 궁금합니다.

작성

·

156

·

수정됨

0

영상 6:38~7:30초에 waitFor메서드에 대해서 이것도 권장되는 방법인지에 대한 의문과..
궁금해서 스택오버플로도 들어가보긴했지만... 잘모르겠고,
Espresso idling resources와의 차이점? 같은거에 대해서 아실분이 계시다면 답글을 남겨주시면 감사하겠습니다.

굳이 억지로 시간내서 찾아주실 필요는 없고..
오다가다 아시는분 계시면 링크하나 던져주시면 감사하겠습니다!

 

=================

// 제가 대충 분석한 내용(?)

waitFor()에서 perform()을 오버라이드 한 부분에

loopMainThreadForAtLeast()가 implementation

된 부분을 구경해봤는데,

(윈도우 단축키: '컨트롤 알트 클릭' or '컨트롤 알트 B')

UiControllerImpl.loopMainThreadForAtLeast()가 구현된 코드를 볼 수 있었지만..

아마도, 핸들러에 딜레이 준 만큼 넣어뒀다가,
메인스레드가 idle일때 핸들러를 돌려주는 소스인듯한데. 정확히 분석이 안되는군요.

 

답변 1

1

냉동코더님의 프로필 이미지
냉동코더
지식공유자

Espresso 동작에 딜레이를 부여하기 위해 사용할 수 있는 Espresso idling resources API의 문제는 테스트를 위해 프로덕션 코드까지 수정해야 하는 불편한 사용방식을 가지고 있다는 점입니다. 그렇다고 Thread.sleep을 써서 강제로 테스트를 지연시키는 것은 구글에서 금지하는 행위이기 때문에, 여기서는 Espresso의 대기를 위해 단순한 waitFor 메소드를 만들어 사용하였습니다. waitFor가 최고의 방법인 것은 아니니 더 좋은 방법이 있다면 그 방법을 사용하시면 됩니다.

hhyeok1026님의 프로필 이미지
hhyeok1026

작성한 질문수

질문하기