我对移动设备上的单元测试真的很陌生。我想为Android移动应用编写JUnit测试。我遇到了Robolectric在IDE中测试(对我来说,Eclipse)但是我真的不明白Robolectric的Shadow对象。我应该用它们来mock吗?ShadowActivity等Shadow对象的使用目的是什么?例如,我在几乎每个Activity类的onCreate方法中都有Crashlytics、GoogleAnalytics代码。Robolectric在遇到这些行时会抛出错误。ShadowActivity能否解决这些类型的问题?很抱歉,正如我所说的,我在单元测试方面真的很陌生,Robolec
我正在尝试启动Robolectric测试并在我们当前的项目中工作,但运气不佳。我的偏好是让它们在AndroidStudio1.1.0+中运行。这是我的项目结构:这是我的测试:importandroid.widget.Button;importcom.mycompany.android.app.R;importorg.junit.Before;importorg.junit.Test;importorg.junit.runner.RunWith;importorg.robolectric.Robolectric;importorg.robolectric.RobolectricTestR
我正在Eclipse上开发一个Android项目,我正在尝试从在模拟器/设备上运行测试(这非常慢)切换到Robolectric.我用Robolectric替换了Android库,将JUnit添加到路径中,将测试用例改回常规TestCase并添加了建议的@RunWith(RobolectricTestRunner.class)来自QuickStartguide(进行必要的更改以实例化我的Activity,而不是依赖Android的Activity测试来为我做这件事)。但是,当我运行测试时,我得到:java.lang.NullPointerExceptionatcom.xtremelabs
我想结合使用Robolectric和Cucumber(JVM)。目前我有两个类ActivityStepdefs,其中定义了Activity管理的两个步骤定义。我的第二个类是RoActivity,例如,一个Activity是根据它的类名创建的,并且将在其中使用Robolectric。当我使用RobolectricTestRunner运行RoActivityTest时,此类中的测试通过了,但是当我运行RunCukesTest(用于将功能作为junit测试运行的类)来自RoActivity的代码未作为Robolectric的一部分运行,即RunCukesTest在我的项目中搜索功能并将其与A
我有一个非常简单的类,它有一个Handler,当它处理消息时它会再次发送新消息:publicclassMyRepeatTask{…publicvoidstartTask(){//sendmessagewithdelay5sechandler.sendMessageDelayed(handler.obtainMessage(…),5000);}Handlerhandler=newHandler(){@OverridepublicvoidhandleMessage(Messagemsg){//IputalogforunittestSystem.out.println(“handlingme
我正在尝试使用robolectric为一段代码编写单元测试。问题是我需要伪造http调用,但根据这个答案,robolectric的伪造层似乎只适用于Apache的HttpClient:Linktoanswer在Retrofit中,您无法更改URL,因此MockWebServer似乎不是一个选项。似乎mockito可以捕获retrofit回调,但我使用的是rxJava,所以我真的不知道它是否有帮助。有人对使用Robolectric+Retrofit+okHttp+rxJava进行单元测试有什么建议吗?这是一小段代码:@Testpublicvoidtest1()throwsIOExcept
我使用的是AndroidStudio1.2,Robolectric3.0-rc2。我有两个测试类,一个叫MotdTest使用一种测试POJOjson序列化和反序列化的测试方法。另一个叫UserInfoTest,其中包含4个测试方法,用于测试我设置到SharedPreferences中的用户信息.如果我运行UserInfoTest单独地,所有4种测试方法总是通过。但是,如果我运行所有测试,则测试在MotdTest中成功,但是UserInfoTest的两种方法总是失败。我现在通过调用./gradlewtest从命令行运行有谁知道为什么当我运行所有测试时我的一些测试失败了?在我的UserIn
我正在尝试automatethedisablingofanimationsasdescribedinthispost,但这似乎只适用于connectedAndroidTest的命令行调用。我想在Studio中使用图形测试运行程序,列表框显示通过/失败的测试。使用该运行者,权限授予(adbshellpmgrant...android.permission.SET_ANIMATION_SCALE)永远不会运行,似乎是因为gradle任务installDebugAndroidTest永远不会运行,而是运行者正在运行Gradle到assembleDebugAndroidTest(或我在运行配置
我正在尝试为我的MainActivity编写仪器测试。我按照给出的答案here.AndroidStudio仍然找不到任何测试。我在androidTest文件夹中有ApplicationTest.java类。这是类(class)的内容:packagecom.example.monicamarcus.mymusicplayerimportandroid.app.Activity;importandroid.test.ActivityInstrumentationTestCase2;importcom.example.monicamarcus.mymusicplayer.MainActivi
鉴于我正在开发一个简单的ListFragment(在本例中,它从MediaStore读取艺术家列表,但稍后也会从不同的来源读取数据),如下所示:@EFragmentpublicclassArtistsFragmentextendsListFragmentimplementsLoaderManager.LoaderCallbacks{privatestaticfinalStringTAG=ArtistsFragment.class.getName();privateSimpleCursorAdaptermAdapter;Uriuri=MediaStore.Audio.Artists.EX