내 프로젝트를 테스트하기 위해 robotium을 사용하고 있습니다. 내 프로젝트에서 사용자 정의 listviews를 사용하고 있습니다. 보기 호출기에있는 페이지에는 최소 3 개의 목록보기가 있습니다. 내 사용자 지정 목록보기 이름은 입니다. MyDragNDropList입니다. 이 목록보기에는 각 행에 1 개의 버튼이 있습니다. 이 버튼은 개인화 된 목록에 해당 항목을 추가합니다. 항목이 추가되면 버튼이 비활성화됩니다. 처음에 내가 사용하고 있었다사용자 지정 목록보기에서보기 가져 오기
solo.clickOnText("button text"); or
solo.clickOnButton("button text"); or
solo.clickOnButton(buttonindex);
그러나 이것은 현재 작동하지 않습니다. 그래서 나는 다른 방법을 시도했다. 나는 단위 테스트 프로젝트를 위해 생성 된 listview 객체에 listview를 설정하고있다. 그런 다음
solo.scrollListToLine(2, position);
solo.waitForDialogToClose(1000);
ListView myList=UnitTestHelperClass.getInstance().listView;
View listElement = myList.getChildAt(position);
View btn=listElement.findViewById(com.safeway.client.android.R.id.list_button);
solo.clickOnView(btn);
첫 번째 보이는 항목의 버튼이 활성화되어 있으면이 코드가 작동합니다. 하지만 lst가 스크롤되면 다음 줄에 NullPointerException이 발생합니다.
View btn=listElement.findViewById(com.safeway.client.android.R.id.list_button);
왜 그렇습니까? 이 문제를 어떻게 해결할 수 있습니까? 도와주세요.
수정 다른 방법으로 시도했습니다. 소스 코드에서 listview를 설정하는 대신 테스트 프로젝트 자체에서이를 얻고 있습니다.
solo.scrollListToLine(2, position);
ListView list=solo.getCurrentViews(ListView.class).get(2);
View listElement=list.getChildAt(position);
View btn=listElement.findViewById(com.safeway.client.android.R.id.add_offer_button);
solo.clickOnView(btn);
여기도 또한 동일한 issue.First 두 항목 단추 클릭을 얻고 있어요 세 번째 항목에 대한 null 포인터 예외가 발생합니다.
아무도 이것에 대해 생각이 없다 ??? –
목록을 채우기 전에 코드가 실행될 수 있습니까? 스크롤 할 때 뷰를 다시 그려야합니다. 나는 robotium이 listview가 준비되었거나로드되었거나 준비되었는지를 확인하는 방법을 가지고 있다고 확신한다. (단지 발사 일 뿐이었지만, 이미 로봇이 있었을 때 이미 거기에 있었다.) - 메서드를 호출하여 목록 항목을 클릭 할 수도있다. 그 (물론 항목의 이전에 체크 된 수입니다!) – deadfish
그 항목에 목록을 스크롤 한 후에 목록 항목보기를 가져와야합니다. 가능합니까? –