Tag: robolectric

Robolectric与Androidtesting框架

与Androidtesting框架相比, Robolectric是否提供了明显的优势? 我已经阅读了关于这两个框架的文档,但据我所知 ,关于Robolectric的唯一明确的好处是它运行在JVM而不是DalvikVM上,使得它比Android框架更快。 还有其他什么突出的好处吗?

使用Retrofit2和Mockito或Robolectric的Androidunit testing

我可以testingretrofit2beta4的真实反应吗? 我需要Mockito还是Robolectic? 我没有在我的项目活动,这将是一个图书馆,我需要testing是服务器响应正确。 现在我有这样的代码卡住了… @Mock ApiManager apiManager; @Captor private ArgumentCaptor<ApiCallback<Void>> cb; @Before public void setUp() throws Exception { apiManager = ApiManager.getInstance(); MockitoAnnotations.initMocks(this); } @Test public void test_login() { Mockito.verify(apiManager) .loginUser(Mockito.eq(login), Mockito.eq(pass), cb.capture()); // cb.getValue(); // assertEquals(cb.getValue().isError(), false); } 我可以做出假的回应,但我需要testing真实。 成功了吗? 它的身体是否正确? 你能帮我用代码吗?

Robolectric说:“找不到AndroidManifest.xml”

当试图让Robolectric RC3在Android Studio中工作时,我可以得到 Caused by: java.lang.RuntimeException: build/intermediates/bundles/debug/AndroidManifest.xml not found or not a file; it should point to your project's AndroidManifest.xml at org.robolectric.manifest.AndroidManifest.validate(AndroidManifest.java:120) at org.robolectric.manifest.AndroidManifest.getResourcePath(AndroidManifest.java:469) at org.robolectric.manifest.AndroidManifest.getIncludedResourcePaths(AndroidManifest.java:475) at org.robolectric.RobolectricTestRunner.createAppResourceLoader(RobolectricTestRunner.java:479) at org.robolectric.RobolectricTestRunner.getAppResourceLoader(RobolectricTestRunner.java:471) at org.robolectric.internal.ParallelUniverse.setUpApplicationState(ParallelUniverse.java:73) at org.robolectric.RobolectricTestRunner.setUpApplicationState(RobolectricTestRunner.java:421) at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:234) 我试过了 @Config(manifest = "app/src/main/AndroidManifest.xml", constants = BuildConfig.class, sdk=21) 我尝试在我的TestRunner中设置清单位置,没有任何工作。 在文件系统中,我看到清单在 ./app/build/intermediates/manifests/full/debug/AndroidManifest.xml 不是在Robolectric正在寻找的地方。 在某一时刻,清单被忽略,然后类似的问题出现在资源,应用程序或Robolectric无法find我的应用程序使用的原始资源。 这是在我的构build文件中: sourceSets { main { java.srcDirs […]

为Robolectric的SharedPreferences提供testing数据

刚开始使用Robolectric,这似乎是我所需要的。 不过,就使用SharedPreferences而言,我遇到了一些障碍。 我有两个testing用例 活动期望新的/空的sharedPreferences 活动期望已经有一些数据的sharedPreferences 对于testing用例1,testing正在按预期方式通过,所以都好:) 然而,对于testing用例2,我似乎无法find一个给Robolectric提供一些伪造数据的好方法,所以活动能够访问这个假数据。 这感觉像是一个非常常见的用例,但我似乎无法弄清楚如何去做!

在Android Studio中运行Robolectrictesting时如何进行debugging?

我需要在Android Studio + Robolectric中执行testing时运行debugging。 每次我尝试通过从Gradle任务中selecttest任务的debug来运行它们时,我都会收到错误消息: 运行package_name时出错:app_name [test]:无法打开debugging程序端口:java.net.SocketException“套接字已closures” 有任何想法吗?

在使用Robolectric + Roboguice时,日志输出写入哪里?

我正在使用Robolectric来testingAndroid。 我正在通过maven运行我的testing,例如 mvn -Dtest=LogTest test 如果我有写入日志的代码,例如 Log.d("TAG", "blah"); 或者使用Roboguice的Ln Ln.d("blah"); 我在maven的surefire日志(文本文件)中看不到任何输出。 理想情况下,我真的想要简单的日志语句去控制台。 我可以通过使用System.out.println("blah")写入控制台,但当然我宁愿使用支持的日志API。 所以我的问题是,为什么我根本没有看到日志输出,以及如何获取日志消息写入控制台?

Androidunit testing用例自动化:Robolectric库与Androidtesting框架

想知道为Android应用程序和库编写unit testing用例的更好select:使用Robolectric库还是坚持使用Androidtesting框架。 我想在命令行运行testing套件,并且希望它独立于configuration模拟器的需要,或者让一台设备连接到构build机器。 你们中的任何一个人都对这些或更好的东西进行比较分析? 您的经验将帮助我决定更好的解决scheme。

如何testing远程android aidl服务

我有一个与远程android服务进行交互的小应用程序。 我想在unit testing中嘲笑这项服务。 我使用Robolectric和JUnit来处理其他testing用例和阴影,但是我不知道如何处理远程服务。 使用相同的aidl来创build和启动一个使用真正的服务和导出方法的相同包的testing服务是否足够? 由于我没有这个服务的代码,我认为我不能使用Robolectric的ShadowService ,它需要实际的类。 非常感谢。

我如何用Robolectrictesting片段?

我知道有一个Robolectric.shadowOf(Fragment)方法和一个ShadowFragment类,认为它们没有列在文档上,但是我不能使它工作。 myFragment = new MyFragment(); myFragment.onCreateView(LayoutInflater.from(activity), (ViewGroup) activity.findViewById(R.id.container), null); myFragment.onAttach(activity); myFragment.onActivityCreated(null); 我正在使用API​​级别13(Honeycomb)。 谢谢。

Robolectric是否支持API级别?

我有一些testing,我想用Robolectric运行,我使用2.3-SNAPSHOT作为我的APP使用ActionbarCompat我需要使用2.3-SNAPSHOT版本作为Robolectric无法findAppCompat主题之前。 所以我在Eclipse中设置了Classpath,最后得到了这个结果: java.lang.UnsupportedOperationException: Robolectric does not support API level 9, sorry! at org.robolectric.SdkConfig.<init>(SdkConfig.java:24) at org.robolectric.RobolectricTestRunner.pickSdkVersion(RobolectricTestRunner.java:288) at org.robolectric.RobolectricTestRunner.getEnvironment(RobolectricTestRunner.java:264) at org.robolectric.RobolectricTestRunner.access$100(RobolectricTestRunner.java:57) at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:186) at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:172) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 我的testing项目的清单是这样的: <manifest […]