fkr*_*han 17 android unit-testing android-activity android-actionbar android-actionbar-compat
我尝试测试一个使用ActionBarActivity的Activity(来自appcompat库).我需要一个自定义应用程序才能操作DI系统来加载我的测试服务而不是真正的服务.
如果我编写了测试并调用startActivity,我会收到以下错误:
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
Run Code Online (Sandbox Code Playgroud)
如果我调用launchActivityWithIntent,Activity会启动而没有任何问题,但它使用的是我的Real Application类而不是Mocked Application类.任何想法如何解决这个问题或如何在应用程序的onCreate之后执行代码,但是在我的仪器测试中调用onCreate of my Activity之前?
aki*_*irs 24
接受的答案在我的案例中不起作用,但在ActicityUnitTestCase子类中包含的内容对我有用:
@Override
public void setUp(){
ContextThemeWrapper context = new ContextThemeWrapper(getInstrumentation().getTargetContext(), R.style.AppTheme);
setActivityContext(context);
}
Run Code Online (Sandbox Code Playgroud)
我发现如果我创建一个自定义 MockApplication 并添加以下代码:
@Override
public void onCreate() {
super.onCreate();
setTheme(R.style.AppTheme);
}
Run Code Online (Sandbox Code Playgroud)
我希望这对其他人也有效。
| 归档时间: |
|
| 查看次数: |
2259 次 |
| 最近记录: |