One of the benefits of RAP is that it enables things to be done at compile time instead of runtime. For example, there are two ways that global reset can be implemented:
The first is more efficient at runtime but imposes an extra maintenance burden, because the developer needs to remember to add calls to reset methods here when they add new resets. The second is requires less maintenance, but imposes an extra runtime overhead.
RAP allows you to have the best of both worlds - it will automatically find all reset methods and generate a global reset() method that statically invokes them all. Because reset() is called for each and every individual test, improvements in its performance can make a noticeable difference to a fixture's performance.
There are likely other opportunities for this sort of optimization in Robolectric using RAP, which could be the subject of a future expansion.
In this early stage, RAP is mostly targeted at those contributing to Robolectric itself. Those who wish to do so will simply need to check out the relevant branch of the Robolectric repository, which will already have the pom.xml file configured appropriately.
However, with some few modifications some of the features (such as the constraint enforcement, or custom shadowOf()/global reset() methods) could also be of benefit to users of Robolectric who are developing their own custom shadows. This feature may be added in a future version
In developing RAP I forsaw a number of enhancements that would be potentially useful:
A special thanks to the Robolectric team (both its original authors and current maintainers) for producing such a useful tool for test-driven Android development.
I started my professional career as a software engineer, and more recently was ordained an Orthodox Christian priest. For now I still works as a software engineer while assisting at my parish in a part-time capacity. I try to employ my engineering experience in ways that might assist my parish (the Holy Monastery of St Nectarios, Adelaide).
Like Robolectric itself, RAP is free software distributed under the MIT license.
However, as a priest I feel that everything I do must be in service of my ministry, and so I also developed RAP partially in the hope that appreciative users might find it in their hearts to make a financial contribution to our parish as an expression of their appreciation. Please visit our website for details: the Holy Monastery of St Nectarios, Adelaide.