driver-test_使用js-test-driver调试单元测试

driver-test

单元测试和测试驱动开发(TDD)是当今的常见范例。 如果您是JavaScript开发人员,那么Google会创建并开源一个名为js-test-driver的出色工具,以帮助进行单元测试。 js-test-driver是秉承JUnit精神JavaScript单元测试运行程序,并将TDD引入JavaScript。

单元测试概述

如果您以前从未进行过任何单元测试,或者从未进入TDD领域,那么您可能会在问自己有什么好处。 关于该主题有很多详细的讨论,但我将介绍一些更重要的观点。

  • 单元测试在回归测试中很有用。 您可以在更改代码后运行单元测试,并确保所有操作都像以前一样。 这对于不产生编译错误的动态语言(例如JavaScript)尤其重要。
  • 项目越复杂/规模越大,更多的单元测试将为您带来投资回报
  • 一整套的单元测试几乎和文档一样好。 有了一套好的单元测试,开发人员可以打开一个项目并开始运行/调试单元测试,以更好地理解系统。 在招募新的团队成员时,这非常有帮助。
  • JUnit是一种流行的Java测试框架,在测试驱动开发的开发中至关重要。 许多现有的测试框架都遵循JUnit的命名约定和习惯用法。

配置系统

本教程将教您如何在集成开发环境(IDE)中设置断点和调试单元测试。 我们将专注于IntelliJ IDE。 本教程使用Microsoft Windows环境,但应通过调整环境变量在大多数操作系统上工作。 您还需要遵循以下说明:

  1. 下载并安装IntelliJ。 您可以从JetBrains网站下载IntelliJ。
  2. 如果尚未这样做,请下载并安装Java Development Kit(JDK)
  3. 在IntelliJ中,确保已安装js-test-driver插件。 如果您不知道如何执行此操作,请参阅JetBrains安装说明
  4. 下载最新的js-test-driver.jar 。 在撰写本文时,最新版本为1.3.5。 就本教程而言,请将jar保存到C:devtoolswebjsjs-test-driver1.3.5js-test-driver-1.3.5.jar
  5. 添加以下环境变量,以便可以从命令行调用Java运行时。
    JAVA_HOME=C:Program FilesJavajdk1.7.0_7 (or the location of your java install)
    PATH=%JAVA_HOME%bin;%PATH%
    

    您可以通过打开命令提示符并键入java来验证安装。 如果正确安装了Java,则应该看到与以下屏幕快照类似的输出。

  6. 转到顶部菜单,然后单击File | New Project在IntelliJ中创建一个新项目。 File | New Project 。 我已经使用C:projectsjs-test-driver的Web模块创建了一个IntelliJ项目。 IntelliJ设置如下图所示。

  7. 在TDD和单元测试中,在生产代码和测试代码之间进行简洁明了的分隔始终是一个好主意。 创建目录src并在IntelliJ项目根目录中进行test 。 创建这些目录后,您的项目应类似于以下屏幕截图。

入门

  1. 我们将添加js-test-driver项目一部分的“ greeter”示例。 在src目录下创建一个名为greeter.js的新JavaScript文件,并添加以下代码。
    myapp = {};
    myapp.Greeter = function() {};
    myapp.Greeter.prototype.greet = function(name) {
      return "Hello " + name + "!";
    };
  2. 现在,我们将创建单元测试。 在test目录下创建相应JavaScript测试文件greetertest.js ,并添加以下代码。
    TestCase("GreeterTest", {
      setUp:function () {
      },
      "test greet": function() {
        var greeter = new myapp.Greeter();
        assertEquals("Hello World!", greeter.greet("World"));
      },
      "test greet null": function() {
        var greeter = new myapp.Greeter();
        assertNull(greeter.greet(null));
      }
    });
  3. greetertest.js ,IntelliJ将不理解TestCase类,并将其突出显示为红色。 单击TestCase ,系统将提示您输入JetBrains的建议意图。 接下来,单击Add JsTestDriver assertion framework support ,如下图所示。 这样做将为js-test-driver添加IntelliJ IDE支持。

  4. 在项目的根目录中创建一个名为js-test-driver.conf的文件。 就本教程而言,完整路径为C:projectsjs-test-driverjs-test-driver.conf 。 将下图所示的信息添加到js-test-driver.conf

  5. 现在,让我们设置项目以使用断点进行调试。 在testgreet()函数内的文件greetertest.js设置一个断点。 您可以通过单击左边距在IntelliJ中设置断点。
  6. 创建类型为JavaScript Debug | JavaScript的新IntelliJ Run / Debug配置。 JavaScript Debug | JavaScript如下所示。

  7. 更改以下值:
    • 打开的URL: http://localhost:9876/capture
    • 展开目录test然后为远程URL输入http://localhost:9876/test/test
  8. 到目前为止,我们已经看到IntelliJ提供了出色的js-test-driver集成。 要直接从IntelliJ内部启动js-test-driver服务器,请展开JsTestDriver Server菜单项,然后单击绿色的播放按钮,如下所示。

  9. 现在让我们从IntelliJ调试我们JavaScript! 启动我们之前创建的称为JavascriptRemote的调试配置。 您可以通过选择Run | Debug 从菜单中Run | Debug 。 将打开一个新的浏览器窗口,并加载js-test-driver远程控制台运行程序,如下所示。

  10. 接下来,打开一个新的命令提示符。 cd到IntelliJ项目的根目录。 就本项目而言,该目录为C:projectsjs-test-driver 。 输入以下命令:
    java -jar C:devtoolswebjsjs-test-driver1.3.5js-test-driver-1.3.5.jar --tests all
  11. 片刻之后,IntelliJ应该在我们之前设置的断点处挂起。 现在可以使用局部变量,监视表达式和其他调试功能。 注意:在IntelliJ中,监视表达式中提供了智能代码完成功能!

结论

本文教您使用js-test-driver调试JavaScript单元测试。 现在,您应该能够在IntelliJ开发环境中设置断点。 最终,我希望这将有助于您为当前和将来的项目生产经过良好测试的软件。

翻译自: https://www.sitepoint.com/debugging-unit-tests-using-js-test-driver/

driver-test

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值