为扩展设计库布局的自定义布局编写android测试

时间:2017-12-15 09:48:42

标签: java android testing android-testing

我正在尝试测试自定义布局,该布局从设计库扩展TextInputLayout。当我运行测试时,我收到错误

  

java.lang.IllegalArgumentException:您需要将Theme.AppCompat主题(或后代)与设计库一起使用。   在android.support.design.widget.ThemeUtils.checkAppCompatTheme(ThemeUtils.java:33)   在android.support.design.widget.TextInputLayout。(TextInputLayout.java:192)   在android.support.design.widget.TextInputLayout。(TextInputLayout.java:185)   在android.support.design.widget.TextInputLayout。(TextInputLayout.java:181)

我正在使用InstrumentationRegistry.getTargetContext()提供的上下文来实例化自定义布局。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

在使用它来实例化自定义布局之前,在为其提供AppCompat主题的上下文对象上调用setTheme(),如下面的示例测试方法所示。

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