Wondering which one is the better choice to write unit test cases for android apps and libraries: Using Robolectric library or sticking with Android Testing framework. I want to
I worked on both, what i found is :-
1) Robolectric do not support API 19, it's mention in its document - http://robolectric.org/eclipse-quick-start/. It's a great disadvantage of it.
2) Robolectric run on JVM not on DVM. So we can not detect that on that particular time GPS is enable in device or not etc. We can only pass our pre-decided value for it.
3) Code writing in Robolectric is complex than junit specially for fragment there are lot of complexity and issues.
4) Robolectric needs external jar and configuration and for junit test we do not need any external library.
5) Robolectric is faster because it runs on JVM but this have disadvantage too, we can not see UI on our device, what screen code is executing.
For Android, i like jUnit test.
I use a tiered system, where I prefer earlier tiers where possible:
The point of the tiers is to keep things as simple as possible, which keeps the full suite faster and helps promote cleaner code.