Javascript测试知识点总结

一、assert

1. Node assert

 assert模块是Node的内置模块,主要用于断言。如果表达式不符合预期,就抛出一个错误,可用于测试模块功能

2.assert.deepEqual(actual, expected[, message])
  • 比较实际值是否等于预期值。相当于===

3.assert.assert.deepStrictEqual(actual, expected[, message]))
  • 注意点 deepStrictEqual相当于===

4.assert.doesNotThrow(block, error)

doesNotThrow预期不一样的时候,预期某个代码块不抛出错误

5.assert.equal(actual, expected[, message])
  • 注意点:equal方法内部使用的是相等运算符(==),而不是严格运算符(===),进行比较运算。

6.assert.fail(actual, expected, message, operator)
  • fail方法用于抛出一个错误

7.assert.ifError(value)
  • ifError方法断言某个表达式是否false

8.assert.notDeepEqual(actual, expected[, message])
9.assert.notEqual(actual, expected[, message])
10.assert.notStrictEqual(actual, expected[, message])

比较值,相当于==

11.assert.ok(value[, message])

ok是assert方法的另一个名字,与assert方法完全一样。

12.assert.strictEqual(actual, expected[, message])
  • 相当于比较 ===

13.assert.throws(block, error)
  • throws方法预期某个代码块会抛出一个错误,且抛出的错误符合指定的条件

二、mocha

mocha是JavaScript的一种单元测试框架,既可以在浏览器环境下运行,也可以在Node.js环境下运行。

使用mocha,我们就只需要专注于编写单元测试本身,然后,让mocha去自动运行所有的测试,并给出测试结果。

mocha的特点主要有:

  1. 既可以测试简单的JavaScript函数,又可以测试异步代码,因为异步是JavaScript的特性之一

  2. 可以自动运行所有测试,也可以只运行特定的测试;

  3. 可以支持before、after、beforeEach和afterEach来编写初始化代码。

三、TDD和BDD

BDD:Behavior Driven Development,行为驱动开发是一种敏捷软件开发的技术,它鼓励软件项目中的开发这。

TDD:Test-Driven Development,就是测试驱动开发,它是一种测试先于编写代码的思想用于指导软件开发,测试驱动开发是敏捷开发中的一项核心时间和技术,也是一种设计方法论,TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码

四、Karma

karma是由Google团队开发的一套前端测试运行框架。

  1.安装相关插件

npm install karma-cli -g
npm install karma jasmine-core karma-jasmine karma-phantomjs-launcher -D复制代码

  2.对工程进行初始化

karma init复制代码

  3.初始化完成之后,会在项目中生成karma.conf.js 文件,这个文件就是 Karma 的配置文件

/ Karma configuration
// Generated on Sun Oct 29 2017 21:45:27 GMT+0800 (CST)

module.exports = function(config) {
  config.set({

    // base path that will be used to resolve all patterns (eg. files, exclude)
    basePath: '',


    // frameworks to use
    // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
    frameworks: ['jasmine'],


    // list of files / patterns to load in the browser
    files: [
      "./src/**/*.js",
      "./test/**/*.spec.js",
    ],


    // list of files to exclude
    exclude: [
    ],


    // preprocess matching files before serving them to the browser
    // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
    preprocessors: {
    },


    // test results reporter to use
    // possible values: 'dots', 'progress'
    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
    reporters: ['progress'],


    // web server port
    port: 9876,


    // enable / disable colors in the output (reporters and logs)
    colors: true,


    // level of logging
    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
    logLevel: config.LOG_INFO,


    // enable / disable watching file and executing tests whenever any file changes
    autoWatch: false,


    // start these browsers
    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
    browsers: ['PhantomJS'],


    // Continuous Integration mode
    // if true, Karma captures browsers, runs the tests and exits
    singleRun: true,

    // Concurrency level
    // how many browser should be started simultaneous
    concurrency: Infinity
  })
}复制代码

  4.然后创建一个 src 目录和一个 test 目录,在其中分别创建 index.js 和 index.spec.js 文件。对 index.js 中的函数进行测试。

index.js 文件如下:

// 加法函数
function add(x){
    return function(y){
        return x + y;
    }
}复制代码

index.spec.js 文件如下:

describe("运算功能单元测试",function(){
    it("加法函数测试",function(){
        var add5 = add(5)
        expect(add5(5)).toBe(10)
    });
})复制代码

  6.使用 karma start 来运行单元测试


转载于:https://juejin.im/post/5c8bb495e51d4547d526ab2c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值