2014-02-25 7 views
1

저는 현재 진행중인 Android 프로젝트에 대한 자동화 된 UI 테스팅 작업을하고 있습니다. 나는 시험을 치르기 위해 에스프레소를 선택했다. 사용자가 로그인해야하는 UI 테스트를 작성해야합니다. 어떻게해야합니까?Android에서 자동화 된 UI 테스트 : 사전 조건 및 사용자 세션?

나는 testPrecionditions 메서드의 구현을 보았지만 너무 기본적인 것처럼 보이고 뷰의 상태 만 확인합니다.

나는 또한 Calabash 테스트의 몇 가지 예제를 발견했지만 원하는 테스트를 실행하기 전에 전체 로그인 루틴을 처음부터 실행합니다. 극도로 긴 테스트를 작성하여 해당 동작을 복제 할 수 있다고 생각하지만, 나에게 맞는 것 같지 않습니다.

제가 익숙하지 않은 세 번째 대안은 모의 객체를 사용하여 모의 데이터를 반환하여 사용자 세션을 시뮬레이트하는 것입니다. 그러나 이것이 자동 UI 테스트를위한 올바른 접근법인지 확신 할 수 없습니다.

답변

0

마지막으로, here에 기재된 방법을 따른다.

나는 모든 API 호출을 캡슐화 한 클래스를 가지고 있으므로 시험 중에 그것을 대체 할 모의 클래스를 만들었습니다. 테스트가 더 빨라지고 결과가 더 예측 가능합니다. 나는 mock 객체를 인스턴스화 계측 컨텍스트를 사용

public class MyActivityTest extends ActivityInstrumentationTestCase2<MyActivity> { 

    public DeregisterDeviceActivityTest() { 
     super(DeregisterDeviceActivity.class); 
    } 

    @Override 
    protected void setUp() throws Exception { 
     super.setUp(); 

     // Obtain instance of my mock API wrapper. 
     IAPIWrapper api = MockAPIWrapper.getInstance(getInstrumentation().getContext()); 

     // Replace application's wrapper. 
     MyApplication.setAPIWrapper(api); 

     // Start activity. 
     getActivity(); 
    } 

    ... 

} 

주의 사항 :

은 예입니다. 그 이유는 테스트 프로젝트의 일부인 리소스 (이 경우 응답 샘플이있는 json 파일)에 액세스해야하기 때문입니다. 활동 컨텍스트를 사용하면 액세스 할 수 없습니다.