替代CasperJS与Cucumber.js一起使用

时间:2013-03-08 15:16:07

标签: javascript cucumber bdd phantomjs

经过大量的研究和试验和错误后,我为前端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。

然而,PhantomJS API非常低级。是否还有其他工具可以在不使用运行队列的情况下为Node.js提供类似CasperJS的功能(单击,等待元素等)?

2 个答案:

答案 0 :(得分:5)

Mocha-PhantomJS可能正是您所寻找的。

或者,WebdriverJS支持黄瓜测试。

如果您想要更低级别,可以尝试直接与selenium-webdriver接口。这是github上的demo

祝你好运!

答案 1 :(得分:1)

我建议使用Mocha和/或chai的cucumber syntax add-on (mocha-cackes)及其插件chai-jquerychai-timers

同样Karma通过插件karma-cucumber提供黄瓜语法支持。

Karma和Mocha都允许您使用发射器为saucelabs或browserstack运行针对真实设备的测试。

希望它有所帮助。