多くの調査と試行錯誤の末、フロントエンド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はCasperJS用の完全なAPIを提供していません。
ただし、PhantomJSAPIは非常に低レベルです。実行キューを使用せずにNode.jsにCasperJSのような機能(クリック、要素の待機など)を提供する他のツールはありますか?