草庐IT

robolectric

全部标签

java - 使用 JUnit 在参数化测试类中使用枚举成员时出现异常

我有一个以枚举成员作为参数的参数化测试类。publicenumMyEnum{A,B}这是测试类的重要部分:@ParameterizedRobolectricTestRunner.ParameterspublicstaticCollectiondata(){returnArrays.asList(newObject[][]{{MyEnum.A}});}publicMyTestClass(MyEnumvalue){}运行测试时,我得到这个异常:java.lang.IllegalArgumentException:argumenttypemismatch如果我将构造函数更改为publicMy

robolectric应用程序实例始终为null

我尝试使用版本3.3.2和3.4-RC3运行Robolectric库。我的代码内部试图获取应用程序的单例实例。但是,当我的测试运行时,检索的应用程序始终为空。它与Robolectric3.1.2一起工作正常。我想升级,因为我想在测试中使用PowerMocks。Stackoverflow中有类似的问题。但这没有帮助我。请指教。以下是我的测试代码。我尝试使用PowerMockRunnerDelegator运行,如下所示。另外,以普通的RobolectrictEstrunner为跑步者。两种方法都没有起作用。@RunWith(PowerMockRunner.class)@PowerMockRunne

android - robolectric - 如何在创建 Activity 对象时模拟和注入(inject)业务类

我的任务是为现有的AndroidActivity编写单元测试,而编写的代码并未遵循单元测试(紧耦合)。场景:我有一个类StroageManager,它在MyActivity的onCreate方法中被实例化。@OverrideprotectedvoidonCreate(BundlesavedInstanceState){StorageManagerstoragemanager=GetStorageManager();//returnnewobjectofstroagemanagersuper.onCreate(savedInstanceState);........}为了通过Robole

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 - Robospock 初始化错误 NoSuchMethodError 与 Android Studio 3.0

我无法获得在AndroidStudio3.0beta6和gradle3.4.1中运行的新Robospock规范。我在AndroidStudio中运行测试时得到的错误是:java.lang.NoSuchMethodError:org.robolectric.annotation.Config$Implementation.(Lorg/robolectric/annotation/Config;)Vatorg.robospock.internal.RoboSputnik.(RoboSputnik.java:52)atsun.reflect.NativeConstructorAccessor

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