2016-10-27 5 views
0

test에서 id로 Textview를 찾을 수 없습니다. 내가 뭘 잘못 했니?테스트에서 Textview를 찾을 수 없습니다.

private MyActivity myActivity; 
    @Before 
    public void setUp() throws Exception { 
     myActivity= Mockito.mock(MyActivity .class); 
    } 

테스트 :

@Test 
    public void testFindView() throws Exception { 
     System.out.println(myActivity); // This is not null 
     this.myActivity.setContentView(R.layout.container); 
     TextView viewText = (TextView) this.myActivity.findViewById(R.id.container_text); 
     System.out.println(viewText); // This is null 
} 

답변

1

실제 예,하지만 인공를 만들지 않습니다 Mockito.mock()를 호출. 단위 테스트를 외부 의존성으로부터 멀리하고 객체와의 상호 작용을 추적하는 것이 주 목적입니다.

그래서 this.myActivity.setContentView(R.layout.container);을 호출하면 조롱 된 myActivity에는 정규 MyActivity 내부가 없으므로 아무 것도하지 말라고 명령 한 스텁 메서드 만 호출하기 때문에 this.myActivity.setContentView(R.layout.container);을 호출하면 아무 일도 일어나지 않습니다. 작동 방식을 테스트하려면 MyActivity의 실제 인스턴스를 만들어야합니다. 상호 작용을 추적하려는 경우 스파이 개체로 재생할 수도 있습니다 (확인할 수 있음)

관련 문제