Hi Cody! Thanks for the reply.
Robolectric 1.x was fully based on mock (shadow) versions of the Android framework classes. Tests ran fast and had consistent behavior. The downside was that functionality you needed to test may not have been implemented yet, or may not be consistent with the real Android JARs. Of course, if that was the case you could always make a pull request.
https://github.com/robolectric/robolectric/commit/22aa354b731ab00a7718f14eb8b297295de44820
Robolectric 2.x introduced using the real Android JARs and greatly reduced the number of shadow classes. The end result was more realistic tests that more closely followed the behavior of the Android SDK. It also introduced more complexity, slower run times, and flakiness. Also pull requests to update the Android framework have slightly more challenges than those to update Robolectric :P
I would argue that Robolectric 1.x resembled a unit test environment way more than Robolectric 2.x. Of course at the time, we also did not have mockable Android JARs in the SDK so this was the only game in town.
But mostly I’m just happy that the classification of the variety testing tools is the discussion we are having today in the Android world rather than whether or not to test at all!