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!