• 前端单元测试工具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文件夹下写测试用例了

  • 相关阅读:
    SMTP协议原始命令码和工作原理[转]
    VC++ SMTP协议电子邮件传送剖析
    C++编译模式(转)
    IE6下select标签覆盖div的完美解决办法
    星级评论插件
    CSS Reset CSS Framework
    if判断IE浏览器的类型
    通过Prototype属性添加Array删除重复数据方法
    Javascript性能优化
    我自己的Javascript 库,封装了一些常用函数
  • 原文地址:https://www.cnblogs.com/johnzhu/p/7874413.html
Copyright © 2020-2023  润新知