Wednesday, October 9, 2013

Robolectric 2.2 Released!

We are happy to announce that the latest version of Robolectric, 2.2, has been released. This release represents several months of work by the Robolectric team and includes some notable improvements. Most interesting is that we've moved one step closer to "Android Reality" by removing one of the main fake pieces of Robolectric — the RoboWindow. We now use the real implementation of Window from the AOSP sources. This has far-reaching consequences but the main one is that we now support the native ActionBar. Your code can now call getActionBar() without getting back a null, and you'll be able to interact with an ActionBar in your tests as well.

There are many other features and fixes added in 2.2. Here's a list of them. Please give Robolectric 2.2 a try and let us know how it goes by directing pull requests and bugfixes to our GitHub repository.

We are aware that Robolectric's documentation is a bit out of date, and we are working on it. Expect documentation updates in the next few days.

Thanks — now get back to testing!

Features

  • Robolectric now does not have a fake implementation of Window (RoboWindow). It has been removed and we now use the internal PhoneWindow class. This allows the getActionBar()method in Activity to return a real ActionBar implementation in tests.
  • To create and manage Activity instances, you must now use the ActivityController interface (see Robolectric.buildActivity())
  • Added visible() method to ActivityControllervisible() must be called on an activity in order for View.isShown() to report back anything but false, since it hooks up the Activity's view hierarchy to the WindowManager.
  • Some shadows were removed (ShadowListActivity)

Bug Fixes

  • Animation.hasEnded() works as expected
  • AsyncTasks no longer swallow exceptions that are thrown during onPostExecute()
  • Context.startActivity() calls can now optionally check if the specified Activity is in thePackageManager using Robolectric.checkActivities(true)
  • Many many issues fixed
  • Better support for Windows development environments
  • Documentation updates!

2 comments:

  1. Hi,

    I am trying to run your sample project using maven. But I am having some problems:

    Caused by: java.lang.OutOfMemoryError: Java heap space
    at


    the Heap goes empty after

    DEBUG: Loading resources for android from jar:%user_dir%\m2\repository\org\robolectric\android-res\4.1.2_r1_rc\android-res-4.1.2_r1_rc-real.jar!/res...

    Please help me.
    I have tried -Xms256m -Xmx512m

    setting it to argline param in Pom

    configuring java params..

    I am not able to solve this issue.

    Please help me out.

    ReplyDelete
  2. Hi, is there a detailed instructions for using robolectric on Eclipse? I have been researching it for many hours but couldn't get it to work. The M2Eclipse link on http://robolectric.org/eclipse-quick-start.html just leads me to a log-in page.

    I am have been learning android development for a few months now using the ADT download from http://developer.android.com/sdk/index.html.

    Thanks

    ReplyDelete