AMD module 单元测试

如有排版效果混乱,请移步https://www.zybuluo.com/bornkiller/note/24759。

前言

  • karma配合requirejs进行单元测试,存在官方版本http://karma-runner.github.io/0.8/plus/RequireJS.html,版本虽然陈旧,但是功能实现没有问题。

  • 单元测试中配置文件test-main.js与实际main.js存在差异,所以单元测试保证模块的可靠性,具体生产环境下注意模块可正常加载就好。。

  • 下面代码仅为局部需特别注意代码,其它字段省略。

package.json

{
  "dependencies": {
  },
  "devDependencies": {
    "karma": "^0.12.19",
    "karma-chrome-launcher": "^0.1.4",
    "karma-cli": "^0.0.4",
    "karma-jasmine": "^0.1.5",
    "karma-requirejs": "^0.2.2",
    "requirejs": "^2.1.14"
  },
}

为单元测试而安装的node模块。

karma.config

推荐在实际使用时,用NPM在项目中再安装一次,更容易理解一些。

// Karma configuration
// Generated on Tue Jul 29 2014 10:24:37 GMT+0800 (中国标准时间)

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', 'requirejs'],

    // list of files / patterns to load in the browser
    files: [
      {pattern: 'lib/**/*.js', included: false},
      {pattern: 'service/**/*.js', included: false},
      {pattern: 'test/**/*spec.js', included: false},
      'test-main.js'
    ],

  });
};

  • basePath使用默认值即可。
  • framework如上填写后,页面会自动引入断言库和加载库,不在需要手动引入。




  • 需要注意的是files字段,included设置为false,表示不会直接通过

你可能感兴趣的:(javascript)