❯ Guillaume Laforge

A bit of functional tests and concurrency for Gaelyk

Along with the release of Gaelyk 1.2, I’d like to share two interesting links about running functional tests with Geb, and concurrency / parallelism with GPars on Gaelyk.
Gaelyk functional testing with Geb

In the Groovy ecosystem, we’re all aware of the Spock testing framework. On top of Spock, you can use the Geb browser automation library, to easily create functional tests for your web applications, in a nice, readable and expressive fashion.

Thanks to Marcin Erdmann, the Gradle GAE plugin (used by the Gaelyk template project) has been enhanced with support for running functional tests with Spock and Geb. Marcin (who’s blog is actually a fork of my Bloogaey app) has written a small tutorial on how to get started.

Concurrency and parallelism with GPars

Another great library of the Groovy universe is GPars, which is bundled with the Groovy distribution. GPars offers a ton of features for your concurrency and parallelism needs: actors, fork/join abstractions, dataflow concurrency, agents, etc.

On Google App Engine, until recently, it wasn’t allowed to spawn threads in your applications. So it was impossible to use a library like GPars in your Gaelyk applications. Fortunately, Google introduced a ThreadManager class so that you can spawn up to 10 threads in your incoming requests.

Gaelyk committer VladimĂ­r OranĂ˝ teamed up with Vacláv Pech (lead of GPars) to work on an extension library to allow GPars to use that thread manager for GPars’ own thread pools. Vacláv tells us about this story on his blog and even points at the GPars web console where you can try some parallel / concurrent features from GPars.