【问题标题】:Should I always test JS in browser?我应该总是在浏览器中测试 JS 吗?
【发布时间】:2011-04-18 06:45:12
【问题描述】:

我是 JS 初学者。我的问题是我们是否总是需要使用浏览器来测试 JS 代码?是否有可用的命令提示符编译器/解释器?

【问题讨论】:

    标签: javascript


    【解决方案1】:

    Rhino 和 Spidermonkey 提供独立的解释器,但是如果你想测试 DOM 操作,你需要找到一个 DOM 实现,而且你需要在任何你定位的浏览器中进行测试(不是所有的 JS 引擎都是创建的相等)。

    【讨论】:

    • “并非所有的 JS 引擎都是一样的”——这是非常重要的一点。如果您希望 JavaScript 在浏览器中运行,则需要在浏览器中对其进行测试。
    【解决方案2】:

    不仅使用一个浏览器进行测试,而且使用所有浏览器进行测试——作为一名网络开发者,你有责任确保你编写的代码能够为所有访问您网站的用户(或尽可能多的用户)运行。因此,如果您的网站可供公众使用,那么您确实应该在所有将被公众使用的浏览器中进行测试。

    也就是说,我(可能还有大多数开发人员)确实倾向于坚持使用一个浏览器进行主要的开发工作,而只是偶尔切换到其他浏览器进行测试。

    至于命令行 Javascript,我最喜欢的做法是使用 Firebug,这是 Firefox 浏览器的一个插件,旨在帮助开发人员调试他们的 Javascript 代码。它有一个控制台模式,你可以用它来执行任意 javascript 代码,这对于调试来说非常方便(它还有许多其他很棒的功能;如果你还没有尝试过,我强烈推荐它)。

    【讨论】:

      【解决方案3】:

      JavaScript 本身只不过是一种语言。没有对象模型是没有用的。您可以创建循环、函数等,但您必须使用特定 JavaScript 环境中的内容。例如,如果您使用 Windows Script Host,您只能获得控制台输入和输出。如果您需要 Web 环境 - 文档、窗口、正文、getElementById 方法 - 您需要一个提供所有这些对象的环境。而网络浏览器做得最好。

      【讨论】:

        【解决方案4】:

        如果您将 JavaScript 用于客户端 Web,那么您可以使用 Selenium 自动执行 JS 测试。根据您的平台(PHP、Ruby、Java)和框架(例如 Ruby on Rails...),您应该可以轻松找到合适的集成绑定。

        Selenium 在后台启动浏览器并使用它执行所有测试。这里的好处是您的测试是无人值守的,并且针对您选择的真实浏览器:Firefox、IE、Opera,而不是一些有限的解释器。

        您也可以在不打开浏览器窗口的情况下运行Selenium headlessly

        如果您不想使用 selenium,可以尝试其他 alternatives

        【讨论】:

        • 这仍然会在浏览器中测试 JavaScript(尽管是自动的)。
        • @Ludvico 好的,但是 OP 是 JS 初学者,似乎使用浏览器进行测试我想通过点击对他/她来说很麻烦。您将如何正确测试适用于浏览器的 JS,但不使用浏览器?你可以验证语法,做一些模拟,但是 DOM、事件等呢?
        【解决方案5】:

        是的,你应该。由于并非每个人都遵循该标准,因此每个浏览器的行为可能会根据您的代码而有所不同。所以最好在浏览器上测试一下。

        【讨论】:

          猜你喜欢
          • 2013-06-19
          • 2012-08-24
          • 2019-08-03
          • 2014-12-28
          • 1970-01-01
          • 2018-07-29
          • 2016-06-28
          • 2016-02-07
          • 1970-01-01
          相关资源
          最近更新 更多