2014-02-20 2 views
0

설치가 끝난 후 처음으로 정보 화면이 표시되면 "계속"버튼을 눌러 정보 화면을 표시합니다. 첫 출시 (예 : APK의 JUnit으로 실행) 또는 후속 실행 (즉, 곧은 JUnit)을 위해 실행되는 테스트를 작성하고 싶습니다. 나는로봇 테스트 케이스에서 조건부로 작동하는 이유는 무엇입니까?

if (solo.waitForText("Continue", 20000)) { 
solo.clickOnButton("Continue"); 
} 

다음 단계 .... (가) 버튼이 "계속"경우

시험은에서 (통과 할 것이다 ... 나는 등, 생각할 수있는 가장 간단한 조건을 사용하려고 해요 APK 테스트 실행) 버튼이 없으면 (clickOnButton의 ADK에 따라) (직접 JUnit이 실행될 때) 실패합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

2/21/14

아마도 시작해야합니다.

내가 테스트중인 응용 프로그램은 설치 후 처음 시작될 때 "계속"버튼을 눌러 정보 화면을 표시합니다. 이 화면은 이후 앱 실행시 표시되지 않습니다. 첫 출시 (예 : APK의 JUnit으로 실행) 또는 후속 실행 (즉, 곧은 JUnit)을 위해 실행되는 테스트를 작성하고 싶습니다. 나는이 같은 시험 열립니다 Testdroid 사용하여 작업을 기록하여이 테스트를 시작 :이만큼 테스트가 분명히 (APK에서 실행)하지만 실행하기 전에 응용 프로그램을 다시 설치로 작동

public void testRecorded() throws Exception { 
    try { 
     solo.waitForActivity("splash"); 
     solo.waitForActivity("Login"); 

     assertTrue(
      "Wait for text (id: com.<app identified>.R.id.continue_txt) failed.", 
      solo.waitForTextById(
        "com.<app identified>.R.id.continue_txt", 20000)); 
     solo.clickOnText((TextView) solo 
      .findViewById("com.<app identified>.R.id.continue_txt")); 

을, 실패 화면이 나타나지 않기 때문에 연속 실행 (직선 JUnit으로 실행). 나는에 waitForTextById 및 clickOnText 문을 둘러싸 시도는 IT가 작동하지 않았다 조건부 "만일"그래서

if (solo.waitForText("Continue", 20000)) { 
solo.clickOnButton("Continue");} 

을 단순화하기 위해 노력하고

if (solo.searchText("Continue")) { 
solo.clickOnButton("Continue");} 

어느 쪽이이 일의 시도, 어느 한 쪽. 이클립스에 따르면 테스트는 버튼을 클릭 할 수 없을 때 실패한다 (버튼이 없기 때문에). 자바에 대한 지식은 기껏해야 초보적인 것입니다. 나는 여기서 무엇을 이해하지 못 하겠는가?

+0

"계속"이라는 텍스트가 있지만 "계속"이라는 텍스트가있는 단추가 없습니까? – maszter

+0

UI 자동화 뷰어에 따르면 버튼에 텍스트가 "계속"인 TextView가 있습니다. 정보 화면이 표시되면 solo.clickOnButton ("계속") 버튼이 활성화됩니다. – TimM

답변

0

. 일단 assoTrue 문장 전체를 solo.waitForTextById 대신 if 조건문에 넣으면 원하는대로 작동하기 시작했습니다. 이 문제는 제한된 Java 사용 경험으로 인한 것입니다.

도움을 주신 모든 분들께 감사드립니다.

1

이 시도 : 나는 마침내 문제가 무엇인지 파악

if (solo.searchText("Continue")) { 
solo.clickOnButton("Continue"); 
} 
+0

고마워요,하지만이 중 하나가 작동하지 않습니다 – TimM

관련 문제