2017-12-15 20 views
0

디자인 라이브러리에서 TextInputLayout까지 확장되는 사용자 정의 레이아웃을 테스트하려고합니다. 테스트를 실행할 때 오류가 발생합니다.디자인 라이브러리 레이아웃을 확장하는 사용자 레이아웃 용 안드로이드 테스트 작성

java.lang.IllegalArgumentException : 디자인 라이브러리에서 Theme.AppCompat 테마 (또는 하위 클래스)를 사용해야합니다. android.support.design.widget.TextInputLayout에서 android.support.design.widget.ThemeUtils.checkAppCompatTheme (ThemeUtils.java:33) 에서 . (TextInputLayout.java:192) android.support.design.widget.TextInputLayout에서 android.support.design.widget.TextInputLayout에서. (TextInputLayout.java:185) . (TextInputLayout.java:181)

나는 사용자 정의 레이아웃을 인스턴스화 InstrumentationRegistry.getTargetContext()에 의해 제공되는 컨텍스트를 사용하고 있습니다. 이 문제를 어떻게 해결할 수 있습니까?

+0

여기에 대한 답변이 도움이 될까요? https://stackoverflow.com/questions/21814825/you-need-to-use-a-theme-appcompat-theme-or-descendant-with-this-active – Micer

답변

0

을 컨텍스트 개체에 호출하면 AppCompat 테마를 제공하기 전에 해당 레이아웃을 사용하여 사용자 지정 레이아웃을 인스턴스화합니다 (아래 테스트 메서드 예 참조).

@Test 
public void testCustomLayout() { 
    Context context = InstrumentationRegistry.getContext(); 
    context.setTheme(R.style.Theme_AppCompat); 
    CustomLayout textInputEditText = new CustomLayout(context); 
    assertNotNull(textInputEditText); 
}