经过大量的研究和试验和错误后,我为前端BDD测试选择了以下堆栈:
我想避免使用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。
然而,PhantomJS API非常低级。是否还有其他工具可以在不使用运行队列的情况下为Node.js提供类似CasperJS的功能(单击,等待元素等)?
答案 0 :(得分:5)
Mocha-PhantomJS可能正是您所寻找的。 p>
或者,WebdriverJS支持黄瓜测试。
如果您想要更低级别,可以尝试直接与selenium-webdriver接口。这是github上的demo。
祝你好运!答案 1 :(得分:1)
我建议使用Mocha和/或chai的cucumber syntax add-on (mocha-cackes)及其插件chai-jquery和chai-timers。
同样Karma通过插件karma-cucumber提供黄瓜语法支持。
Karma和Mocha都允许您使用发射器为saucelabs或browserstack运行针对真实设备的测试。
希望它有所帮助。