14

经过大量研究和反复试验,我选择了以下堆栈进行前端 BDD 测试:

  • 黄瓜.js
  • CasperJS(通过 SpookyJS)
  • 幻影JS

我想避免 CasperJS 运行队列并直接(通过phantom-proxy)使用 PhantomJS,并在每个步骤中使用回调:

@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 的功能(单击、等待元素等)?

4

2 回答 2

5

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

或者,WebdriverJS支持黄瓜测试。

如果你想更底层,你可以尝试直接与selenium-webdriver交互。这是github上的一个演示。

祝你好运!

于 2014-07-25T22:55:51.647 回答
1

我推荐Mocha,它有一个黄瓜语法插件(mocha-cakes)和/或 chai,它是插件chai-jquerychai-timers

此外, Karma通过插件karma-cucumber提供黄瓜语法支持。

Karma 和 Mocha 都允许您使用例如用于 saucelabs 或 browserstack 的启动器针对真实设备运行测试。

希望能帮助到你。

于 2013-07-24T14:41:35.797 回答