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!
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 internalPhoneWindow
class. This allows thegetActionBar()
method in Activity to return a realActionBar
implementation in tests. - To create and manage Activity instances, you must now use the ActivityController interface (see
Robolectric.buildActivity()
) - Added
visible()
method toActivityController
.visible()
must be called on an activity in order forView.isShown()
to report back anything but false, since it hooks up theActivity
's view hierarchy to theWindowManager
. - Some shadows were removed (
ShadowListActivity
)
Bug Fixes
Animation.hasEnded()
works as expectedAsyncTask
s no longer swallow exceptions that are thrown duringonPostExecute()
Context.startActivity()
calls can now optionally check if the specifiedActivity
is in thePackageManager
usingRobolectric.checkActivities(true)
- Many many issues fixed
- Better support for Windows development environments
- Documentation updates!