0

我似乎无法理解测试 AngularJS 应用程序的概念。

我使用 PHPstorm 作为我的 IDE,并通过 node 成功安装了 node.js 以及 karma。

然后我创建了一个 karma.config 文件:

  module.exports = function(config) {
config.set({
  basePath: '',
  frameworks: ['jasmine'],
  files: [
      'js/angular.js',
      'js/va.angular.js',
    'test/**/**/*Spec.js'
  ],
  exclude: [

  ],
  reporters: ['progress'],
  port: 9876,
  colors: true,
  logLevel: config.LOG_INFO,
  autoWatch: false,
  browsers: ['C:/Program Files (x86)/Google/Chrome/Application/chrome.exe'],
  captureTimeout: 60000,
  singleRun: false
});
};

我还创建了一个测试文件:

// mainSpec.js
describe('controllers', function(){
beforeEach(angular.module('va'));

it('should friggin test something', inject(function() {
    var x = 5;
    expect(x.toBe(5));
}));
});

但是,当我尝试运行测试时,由于以下原因而失败:

TypeError: Object #<Object> has no method 'apply'
TypeError: Object 5 has no method 'toBe'

现在我有两个问题:

  • 我在这里做错了什么?
  • 业力的东西从哪里得到茉莉花的东西?在我看来,它似乎无法得到它。
4

1 回答 1

4

确保将angular-mocks.js模块包含在要加载的文件列表中。

当您frameworks: ['jasmine']在 karma 配置中指定时,它包含 jasmine,因此无需您自己包含它。

至于你的错误,

expect(x.toBe(5))

应该:

expect(x).toBe(5)
于 2013-11-01T20:35:23.503 回答