zoukankan      html  css  js  c++  java
  • (译)学习如何构建自动化、跨浏览器的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
    

    你需要一个带有

  • 相关阅读:
    BZOJ 3189. [Coci2011]Slika
    BZOJ3188. [Coci 2011]Upit
    P4304 [TJOI2013]攻击装置
    P3966 [TJOI2013]单词
    P3964 [TJOI2013]松鼠聚会
    BZOJ 3157: 国王奇遇记
    设计模式--策略模式
    SSM整合步骤
    Mybatis笔记二
    Java调用WebService之Axis实现
  • 原文地址:https://www.cnblogs.com/YeaseonZhang/p/5691404.html
Copyright © 2011-2022 走看看