Давайте обсудим как тестировать Single Page Applications - приложения построенные преимущественно на JavaScript, где страница практически не перезагружается. Самым известным приложением такого рода является GMail, а в последнее время их становится всё больше и больше, благо возможности браузеров позволяют исполнять JavaScript очень быстро. Каждое уважающее себя веб-приложение старается выполняться без перезагрузки страниц.
Пользоваться ими крайне удобно - всё быстро, страница умеет обновляться по частям, и пр. А вот как тестировать? Вот в чем вопрос. Конечно, WebDriver всё скушает, это без вопросов. Но, в SPA у нас практически всё будет работать асинхронно, а значит постоянно нужно вставлять какие-то ожидания, и далеко не факт, что в итоге тесты получатся стабильными и быстрыми (быстрыми точно не получатся).
Для создания SPA используются JavaScript фреймворки: Backbone, Marionette, AngularJS, EmberJS - тысячи их. И в зависимости от фреймворка (и приложения) могут быть свои механизмы обеспечения тестирования. Например, командой AngularJS был создан проект Karma.
Мне б хотелось узнать: у кого есть какой опыт тестирования такого рода приложений? Использовали ли вы возможности фреймворка?