我刚刚开始使用Robolectric。模拟大多数Android类似乎工作正常,但是当我的被测类试图创建DefaultHttpClient()时,它会得到可怕的“stub!”错误。被测类在这一行失败:HttpClienthttpclient=newDefaultHttpClient();即使文章位于http://robolectric.blogspot.com/2011/01/how-to-test-http-requests.html?showComment=1297722651278#c3540420071421225744似乎表明这应该行得通。我的测试是这样的:@Beforepub
我正在使用robolectric-gradle-plugin用于robolectric单元测试。我不想在失败的测试上失败。在DSL或属性中是否有一种方法不会使构建测试失败,类似于SurefireMaven插件上的-DtestFailureIgnore=true?我试过:robolectric{ignoreFailures=true}和robolectric{ignoreFailure=true}和-DignoreFailure=true在命令行上。我似乎找不到任何关于如何执行此操作的文档,也找不到任何关于在源代码中忽略测试的引用。 最佳答案
正如标题所说,在调用Robolectric.buildActivity(MyActivity.class).create().get();时,使用Gradle运行Robolectric测试会导致NullPointerExceptionp>build.gradle(基于thisanswer)buildscript{repositories{mavenCentral()}dependencies{classpath'com.android.tools.build:gradle:0.5.+'}}repositories{mavenCentral()maven{url'https://oss.
我想使用Junit类别注释对robolectric单元测试进行分组,以便某些测试不会在特定情况下运行。在一个普通的java项目中,我知道我可以使用applyplugin:'java'test{useJUnit{includeCategories'FastTest'}}指定类别。但显然'java'插件与Android插件'com.android.application'不兼容。Error:The'java'pluginhasbeenapplied,butitisnotcompatiblewiththeAndroidplugins.我尝试创建一个自定义gradle任务sourceSets{
我可以使用Robolectric来测试一个Activity是否启动了一个带有Intent传递的特定Bundle的服务?回答:是的!我想编写一个基于Robolectric的测试来测试我的MainActivity启动MyService并在intentextras中传递一个特定的数字:在“MainActivity.java”中我有方法publicvoidstartMyService(){Intenti=newIntent(this,MyService.class);BundleintentExtras=newBundle();//TODO:Putmagicnumberinthebundlei
这是我的测试方法的样子:@RunWith(RobolectricTestRunner.class)publicclassTestMyApplication{privateAboutaboutActivity;@TestpublicvoidAboutActivityTest()throwsException{aboutActivity=newAbout();aboutActivity.onCreate(null);TextViewaboutInfo=(TextView)sobreActivity.findViewById(R.id.text_version);assertThat(sob
我开始在AndroidStudio中使用Robolectric。起初我想使用hamcrest创建一个简单的测试,如下所示:@RunWith(CustomTestRunner.class)@Config(emulateSdk=18)publicclassMainActivityTest{privateMainActivitymainActivity;@TestpublicvoidtestMainActivity(){mainActivity=buildActivity(MainActivity.class).create().get();assertThat(mainActivity,n
为了跨配置更改保留我的AsyncTasks,我使用基于fragment的解决方案和setRetainInstance(true),它托管每个AsyncTask并回调到一个监听Activity,类似于此解决方案http://www.androiddesignpatterns.com/2013/04/retaining-objects-across-config-changes.html最终,目的是使用Robolectric测试AsyncTask在整个配置更改过程中的保留功能,但我需要从正确设置实际配置更改开始。但是,我似乎无法模仿在配置更改期间发生的确切引用行为。真实应用:运行真实应用时
我想将一些测试文件添加到我的测试文件夹中,因为我想模拟一些JSON文件加载。问题是最后一个Robolectric版本(2.4)看起来没有找到测试资源路径(我得到一个NPE),但是Robolectric2.3找到了。这是我的项目的样子:在Res类(由测试使用)中,我以这种方式加载JSON:publicstaticStringstr(Stringpath)throwsIOException{InputStreamis=null;try{is=Res.class.getResourceAsStream(path);//"is"ISNULL!returnnewString(ByteStream
我正在尝试将我的测试从java转换为kotlin。简单的单元测试翻译成功,像这样:classBindingUtilsTest{@Test@Throws(Exception::class)funtestConvertBooleanToVisibility_visible(){assertEquals(BindingUtils.convertBooleanToVisibility(true),View.VISIBLE)}}但是当我尝试运行androidTest时它失败并显示消息:“未找到测试”和TestrunningstartedTestsrantocompletion.Emptytest