草庐IT

Robolectric-Tests

全部标签

android - 自升级到 Robolectric 4.3 以来,ListView 的 onItemClickListener 得到一个空 View

我的activity的布局基本就是这样(为了说明问题做了简化)。基本上,如果设备的屏幕很小,ListView就没有太多空间可以显示,因为其他View占据了所有空间:我的Activity代码设置项目点击监听器如下:list.onItemClickListener=AdapterView.OnItemClickListener{_,view,_,_->Snackbar.make(view,"Clickedon$view",Snackbar.LENGTH_SHORT).show()}我的单元测试点击列表中的第一项:valcontroller=Robolectric.buildActivity

android - Robolectric 测试 Activity 创建,包括 Intent 附加功能

我有一项Activity会从临时Actor那里获取pojo,如下所示:@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);Bundleextras=getIntent().getExtras();if(extras!=null){MyPojopojo=extras.getParcelable("pojo");//dostuffwithmypojohere}}//buttonthatshowsatoast

android - 当 Robolectric 在服务实例中调用 getSystemService 时出现 NPE

当我尝试在服务实例中调用getSystemService时,它​​抛出了一个NPE。它在onCreate中调用:Vibratorvibrator=(Vibrator)getSystemService(VIBRATOR_SERVICE);然后我像这样创建了服务实例:@Testpublicvoidtest()throwsException{FooServiceservice=newFooService();service.oncreate();//NPEinthisline//...intentdeclarationservice.onStartCommand(intent,0,1);}但

导入 org.robolectric 时 Android Studio 找不到包

我正在使用butterknife包:8.5.1,当我想添加robolectric时,gradle说com.google.guava有冲突:Error:Conflictwithdependency'com.google.guava:guava'inproject':app'.Resolvedversionsforapp(18.0)andtestapp(20.0)differ.Seehttp://g.co/androidstudio/app-test-app-conflictfordetails.我检查了依赖项,因为ButterKnife使用的是guava18,所以我使用configura

android - 是否可以使用 Robolectric 进行集成测试?

我有MainActivity和SubActivity.MainActivity有一个触发startActivityForResult的按钮打电话SubActivity.SubActivy有责任将记录添加到某个存储库,以便在它调用finish时,MainActivty,在onActivityResult方法中,必须调用notifyDataSetChanged在适配器上:@OverrideprotectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){if(resultCode==RESULT_OK&&reque

android - 使用 SugarORM 和 Robolectric 进行测试

我正在尝试为我的android项目设置测试环境。基本的Robolectric设置已完成。我用这个很好tutorial.如果我在我的Manifest.xml中注释掉SugarORM,所有测试都可以正常工作。但是如果我想将它与SugarORM一起使用,我总是会收到此错误:java.lang.NullPointerExceptionatdalvik.system.DexFile$DFEnum.hasMoreElements(DexFile.java:239)atcom.orm.SugarDb.getDomainClasses(SugarDb.java:37)atcom.orm.SugarDb

android - 资源 $NotFoundException google_play_services_version 在 gradle 和 robolectric 升级之后

我正在尝试将项目更新到Gradle3.0.1/gradlewrapper4.1。当使用./gradlewtestDebugUnitTest运行时,曾经有效的Robolectric测试现在失败了:android.content.res.Resources$NotFoundException:org.odk.collect.android:integer/google_play_services_versionatorg.robolectric.android.internal.ParallelUniverse.setUpApplicationState(ParallelUniverse.

java - 如何覆盖 Robolectric 应用程序?

我继承了旧版Android项目并开始添加Robolectric3和JUnit4测试用例。遗憾的是,由于在Robolectric中不起作用的意大利面条代码和框架,目前无法初始化主应用程序类。我想为测试替换我的应用程序类。但是Robolectric在我更新RuntimeEnviroment.application变量之前就崩溃了。有没有办法在Robolectric中禁用list应用程序创建?这是我一直在尝试做的事情:@RunWith(RobolectricGradleTestRunner.class)@Config(constants=BuildConfig.class,sdk=21,ma

android - 将 Robolectric 与 android.support.v7.app.MediaRouteButton 结合使用

我有一个在其布局中包含android.support.v7.app.MediaRouteButton实例的View。我已经创建了一个基本的Robolectric测试的开始,它只做构建和创建MainActivity:@RunWith(RobolectricTestRunner.class)@Config(constants=BuildConfig.class)publicclassMainActivityTest{@TestpublicvoidloadActivity(){MainActivityactivity=Robolectric.buildActivity(MainActivit

android - Robolectric With Gradle : .\res\values 不是目录

我正致力于使用gradle实现运行robolectric测试。我目前正在执行所有测试,但是每当我尝试使用Robolectric.buildActivity(ClassName.class).create().get();实例化Activity时编辑:使用HelloWorldactivity=newHelloWorld();生成相同的错误我会得到以下错误:java.lang.RuntimeException:java.lang.RuntimeException:.\res\valuesisnotadirectoryatorg.robolectric.res.PackageResource