• (译)学习如何构建自动化、跨浏览器的JavaScript单元测试


    作者:Philip Walton
    译者:Yeaseon
    原文链接:点此查看


    译文仅供个人学习,不用于任何形式商业目的,转载请注明原作者、文章来源、翻译作者及链接,版权归原文作者所有。


    我们都知道在多个浏览器中测试我们的代码是多么的重要。至少在我们发布第一个项目的时候,我认为我们在网络开发社区做大部分工作还是相当不错的。

    我们做的不够好的工作是测试代码时每一次做出的改变。

    我个人对此感到很惭愧。我已经把“学习如何构建自动化、跨浏览器的JavaScript的单元测试”列在我的年度to-do清单中,但我每一次坐下来真正想要做的时候,我又退却了。虽然我肯定这一部分原因是因为我的懒惰,同时我认为这也是由于缺乏良好的可用信息在这个主题上。

    有许多工具和框架(例如 Karma)宣称“要使自动化的JavaScript测试变得简单”,但以我的经验看来这些工具引入的复杂性比他们摆脱的复杂性更多。在我的工作经验中,如果你是一个专家这些工具“能工作”的很好,但对于一个初学者是很糟糕的。我想要真正了解的是这个流程是如何在引擎中工作的,以便在它出现问题的时候(总会出现问题的),我能解决它。

    对我来说,充分了解这些是如何工作的最好方法就是尝试从头开始重新创建它。所以我决定去构建我自己的测试工具,然后把我的所学分享到社区中。

    手工测试流程

    在我解释自动化过程之前,我认为最重要的是确保我们都在同一页面上进行手工测试工作。

    毕竟,自动化是关于使用机器来关闭负载的重复部分的现有工作流程。如果你在充分理解手工过程之前尝试去开始自动化,它也不会像你理解了自动化过程一样。

    在手工过程中,你写了一个你的测试文件,它可能看起来像是:

    var assert = require('assert');
    var SomeClass = require('../lib/some-class');
    
    describe('SomeClass', function() {
      describe('someMethod', function() {
        it('accept thing A and transforms it into thing B',function() {
          var sc = new SomeClass();
          assert.equal(sc.someMethod('A'), 'B');
        });
      });
    });
    

    这个例子用了Mocha和Node.js 资源模块,但是重要的不是你是用的测试库或者断言库,它可以使任意一个。

    在Mocha中运行Node.js,在你终端通过命令行你就能运行这个测试:

    mocha test/some-class-test.js
    

    你需要一个带有

  • 相关阅读:
    基本技能训练之线程
    关于UEditor的使用配置(图片上传配置)
    PAT 乙级练习题1002. 写出这个数 (20)
    codeforces 682C Alyona and the Tree DFS
    codeforces 681D Gifts by the List dfs+构造
    codeforces 678E Another Sith Tournament 概率dp
    codeforces 680E Bear and Square Grid 巧妙暴力
    codeforces 678D Iterated Linear Function 矩阵快速幂
    codeforces 679A Bear and Prime 100 交互
    XTUOJ 1248 TC or CF 搜索
  • 原文地址:https://www.cnblogs.com/YeaseonZhang/p/5691404.html
Copyright © 2020-2023  润新知