【问题标题】:Testing ajax from therubyracer (or execjs)?从 therubyracer(或 execjs)测试 ajax?
【发布时间】:2012-01-31 17:48:11
【问题描述】:

我想在 ruby​​ 上下文中测试 javascript 代码。具体来说,我想用 ruby​​ 设置我的数据库,用我的 javascript 模型查询它,并从 ruby​​ 确认我的 javascript 状态。我想在没有嘲笑的情况下做到这一点。

我尝试简单地将我的客户端库加载到 v8 上下文中,但这会导致 therubyracer 以各种方式阻塞(window not defined、userAgent not defined 等)。

此外,我正在使用无头浏览器来测试我的 javascript 代码,但它们没有为我提供我需要在这些情况下利用的 ruby​​ 上下文。

我认为我需要将浏览器(或 dom 模拟器)加载到 v8 上下文中,但我不知道有哪些库可以做到这一点。也许你有其他想法?

我该怎么做?

【问题讨论】:

    标签: javascript ruby ajax testing execjs


    【解决方案1】:

    我使用capybara-webkit 来完成此类任务。您实际上不需要使用 RSpec 帮助程序,您也可以简单地创建一个内存中的浏览器实例,您可以将其定向到您的 HTML/Javascript。优点是它提供了一个evaluate_script 方法,可用于与浏览器的Javascript 上下文交互(以推送/接收数据)。

    这是否适用于您的情况是您需要能够从 Javascript 端访问哪种“ruby 上下文”。

    还有一些您可能感兴趣的其他项目:

    【讨论】:

    • 见鬼!我不知道evaluate_script。我会调查一下。
    • @thedeeno:C++ 端也很干净,我修改了它的一些特性,如果你想要更多功能,它真的很容易扩展。
    • 我见过僵尸,但我不确定如何从 rspec 测试中利用它。你对此有什么想法吗?
    • @theedeeno:不,它是 Node.js,实际上与 Ruby 无关。
    • 是的,这是有道理的。只是确保我没有误会。
    猜你喜欢
    • 2012-03-01
    • 1970-01-01
    • 2016-08-19
    • 1970-01-01
    • 2013-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多