前端单元测试工具karma和jest

 

  1.Jasmine是一个很好的单元测试框架,它有漂亮简单的API

  

describe('you can group test cases in "describe" blocks...', function() { 
    describe('...which can also be nested', function() {
        it('test cases are in "it" blocks', function() {
        var string = 'where we can run arbitrary JavaScript code...'; // ...and make assertions about results using "expect": 
        expect(string).toEqual('expected string');
      }); 
    });
});

  

 Karma 是一个集成了像 Jasmine(基于 BDD 的测试框架),PhantomJS(无界面的浏览器)等的测试工具。

 

 npm安装好后,就要写karma的配置文件

 

//karma.conf.js
module.exports = function(config) { config.set({
    frameworks: ['jasmine'],
    files: [
      'src/**/*.js',
      'test/**/*_spec.js'
    ],
    preprocessors: {
      'test/**/*.js': ['jshint','browserify'],
    'src/**/*.js': ['jshint','browserify']
    },
     /**
         ** ChromeDebugging,ChromeDebugging可以打开chrome devtool,出来的画面,点击DEBUG按钮,调试测试用例,
         ** PhantomJS需要安装对应的phantomjs和karma-phantomjs-laucher
         */
        browsers: ['ChromeDebugging'],
        customLaunchers: {
            ChromeDebugging: {
                base: 'Chrome',
                flags: ['--remote-debugging-port=9333']
            }

  })
}

这里定义了要测试的文件路径,同时定义了跑测试前,一个jshint的预处理。(触发JSHint)

//.jshintrc
{
 "browser": true,
"browserify": true,
"devel": true,
"globals": { "jasmine": false,
        "describe": false,
        "it": false,
        "expect": false,
        "beforeEach": false,
        "afterEach": false        }
}

 2. Jest是facebook后来使用的一个测试框架,集成了mocha等等,使用很方便
  
  

npm install -S jest jest-watch-typeahead ts-jest

      因为我要使用ts,所以多安装了ts-jest

  根目录建立一个jest.config.js文件
  

module.exports = {
  testMatch: ['<rootDir>/test/\*\*/\*.ts'],
  preset: 'ts-jest',
  testEnvironment: 'node',
};

package.json下添加脚本:

"test": "jest"

然后就可以在test文件夹下写测试用例了

posted @ 2019-10-10 15:38  小猪ab  阅读(2097)  评论(0编辑  收藏  举报