On Monday I finally got around to open sourcing my Lebowski framework that I built to perform automated feature and integration testing of applications built on the SproutCore framework. If you’re interested in trying the framework, please check out http://github.com/FrozenCanuck/Lebowski.

The framework was primarily designed with the intent to easily write test scripts that resembled how an application was built with SproutCore. This compared to testing a SproutCore application using traditional web-based test automation frameworks that focus on interacting with a web application using XPath statements, explicit HTML DOM elements, and low-level JavaScript. That’s not to say those frameworks are wrong, they just happen focus on a different domain of how traditional web applications are built.

The Lebowski framework’s follows a proxy-based architecture where you work with proxy objects in order to communicate with an application’s SproutCore objects (models, views, controller, etc.) that live within a web browser. The proxy objects communicate with the objects in the web browser via the use of the Selenium remote control server. The framework itself is written in Ruby, so it does mean that you do have to know some of the basics of the language, but you don’t need to be an expert.

The initial release of Lebowski (version 0.1.1) has proxies for many of the views and panes that come with the SproutCore framework. Each of the proxies were designed to make it simple to acquire information about the proxied object and interact with it via common user interface actions (click, mouse move, drag and drop, typing, etc.). All the subtle details of how to interact with views and panes have been taken care of by the proxies so that you can just focus on writing your scripts to test your application’s functionality.

You, of course, are able to write your own custom proxies using Lebowski in order to make it easier to work with the custom views, panes, and other objects you built for your SproutCore-based application. There are example applications to show you how.

If you do end up trying to use the Lebowski framework and have questions on how to use it or run into any problems, feel free to post a message to the following: http://groups.google.com/group/lebowskifw.

Enjoy!

-FC

Advertisements