2017-12-04 9 views
1

저는 안드로이드 앱의 데이터 기반 테스트를 작성 중이며 테스트를 신속하게 설계하고 변경할 수 있도록 에스프레소 테스트 프레임 워크에 CSV를 작성하기 시작했습니다. 에스프레소는 성공적인 클릭 및 텍스트 입력과 같은 UI에 대한 기본 사항을 검증 할 수 있지만 고급 로직을 처리 할 수 ​​있습니까?에스프레소 테스트 : 변수에 액세스

예를 들어, 테스트 중에 만들어진 일부 클릭을 기반으로 영수증을 만들려고합니다. 이것은 런타임 이전에 비용이 청구되고 실제 결과 대 예상 결과의 자동 비교를 위해 CSV에 입력됩니다. 이렇게하려면 값을 확인하기 위해 영수증 개체에 액세스해야합니까? 또는 적어도 그것을 표시하는 텍스트 상자 (쉽지만 실제로는 내가 아는 것은 아닙니다).

메모리에 저장된 객체를 기본 응용 프로그램에서 에스프레소 테스트 프레임 워크로 가져 오는 방법이 있습니까?

답변

1

내 질문에 대한 답변을 찾았습니다.

개체/변수를 가져 오려면 존재하는 클래스에 도착해야합니다. 이것은 @Rule 태그로 에스프레소 달성된다 :

@Rule 
public ActivityTestRule<MainActivity> mainActivityTestRule = new ActivityTestRule<MainActivity>(MainActivity.class); 

여기에서 당신이 할 수 있습니다

mainActivityTestRule.getActivity(); 

거기에서 모든 객체에 액세스 할 수

편집 :

프리미티브 괜찮아 보이지만 여전히 객체가 실제로 전달되는지 확인하려고합니다. 그것은 내 에스프레소 클래스에있는 개체가 생성자가 방금 실행 된 것처럼 기본 것 같습니다. 더 많은 정보로 업데이트됩니다.

편집 2 :

개체에 대해서는 작동하지 않습니다. 에스프레소 클래스와 메인 애플리케이션의 중단 점을 비교하고 비교하면 서로 다른 객체 ID를 보여줍니다. 주 응용 프로그램에서 개체를 가져 오는 것은 같은 상태의 개체를 반환하지 않습니다.