sinon在测试插件中是未定义的(parse-mock)

时间:2015-11-13 22:06:16

标签: javascript unit-testing sinon

我试图使用Karma在AngularJS上运行测试框架。我们的应用程序使用Parse.com的NoSQL数据库,我们想在不调用它的情况下测试我们的代码,因此我尝试使用parse-mock来完成它。

但是,我很确定我设置错误,因为我已经设法让所有事情都达到了唯一的问题,那就是" sinon"在插件parse-mock中未定义。

这是karma.conf.js文件:

// Karma configuration
// Generated on Fri Nov 13 2015 13:23:29 GMT-0600 (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', 'requirejs'],


// list of files / patterns to load in the browser
files: [
  'test-main.js',
  //{pattern: 'app/view*/**/*.js', included: false},
  {pattern: 'app/js/parse-1.5.0.min.js', included: true},
  {pattern: 'node_modules/underscore/underscore-min.js', included: true},
  {pattern: 'node_modules/parse-mock/dist/parse-mock.latest.js', included: true},
  {pattern: 'node_modules/parse-mock/test/exmaples/login.js', included: true}
],


// 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: {
},

plugins: [
  'karma-jasmine',
  'karma-chrome-launcher',
  'karma-sinon',
  'karma-requirejs',
  'karma-coffee-preprocessor'
],


// 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: true,


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


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

这是test-main.js文件(requirejs配置):

var allTestFiles = [];
var TEST_REGEXP = /(spec|test)\.js$/i;

// Get a list of all the test files to include
Object.keys(window.__karma__.files).forEach(function(file) {
if (TEST_REGEXP.test(file)) {
// Normalize paths to RequireJS module names.
// If you require sub-dependencies of test files to be loaded as-is (requiring file extension)
// then do not normalize the paths
var normalizedTestModule = file.replace(/^\/base\/|\.js$/g, '');
allTestFiles.push(normalizedTestModule);
}
});

require.config({
  // Karma serves files under /base, which is the basePath from your config file
  baseUrl: '/base',

  paths: {
    'sinon': 'node_modules/sinon/lib/sinon.js',
//'parse': 'app/js/parse-1.5.0.min.js'
},

use: {
'sinon': {
 attach: 'sinon'
 }
 },

 // dynamically load all test files
deps: allTestFiles,

  // we have to kickoff jasmine, as it is asynchronous
  callback: window.__karma__.start
  });

最后,来自parse-mock插件的相关行:

  sinon = (typeof window !== "undefined" ? window.sinon : typeof global !== "undefined" ? global.sinon : null)

我查了一下,window.sinon和global.sinon都是未定义的,我不明白为什么。

0 个答案:

没有答案