После многих исследований и испытаний и ошибок я выбрал следующий стек для тестирования Frontend BDD:
- Cucumber.js
- CasperJS (через SpookyJS)
- PhantomJS
Я хотел бы избежать очередей запуска CasperJS и напрямую использовать PhantomJS (через phantom-proxy) с обратными вызовами на каждом шаге:
@World = (cb) ->
@phantom = require "phantom-proxy"
cb()
@Before (cb) ->
self = this
@phantom.create {}, (proxy) ->
self.proxy = proxy
self.page = proxy.page
cb()
@After (cb) ->
@proxy.end ->
cb()
@When /^I go to url "([^"]*)"$/, (url, cb) ->
@page.open url, ->
cb()
делает все более логичным и BDD-подобным.
Кроме того, SpookyJS не предоставляет полный API для CasperJS.
API PhantomJS, однако, довольно низкоуровневый. Есть ли какой-либо другой инструмент, который предоставляет функции, подобные CasperJS (нажатие, ожидание элементов и т.д.) Для Node.js без использования очередей выполнения?