我想用Karma和Jasmine来测试我的AngularJS应用程序 . 我已经安装了所有与业力有关的事情 . 在karma.conf.js文件中,我给出了gulped bower.js(它将包含所有bower组件)并吞下all.js(所有js文件)和testcase文件 . 但我得到一个依赖性问题,这是不允许我进一步的 . 如果我在不使用beforeEach的情况下编写简单的测试用例,它将获得perferctly执行 . 但我正在研究真正的项目,所以需要将控制器注入我的模块 . 但是当我使用beforeEach时(注入......,我得到了这个问题 . 我想知道哪里出了问题 .
所以这是我的karma.conf.js
files: [
'./tests/_bower.min.js',
'./bower_components/angular-mocks/angular-mocks.js',
' D:/testCase/project-pro/public_html/js/all.js',
'./tests/demotest.spec.js'
],
和我简单的测试用例
describe('settingsCtrl', function () {
var $controller, settingsCtrl, scope;
beforeEach(angular.mock.module('app'));
// Inject the $controller service to create instances of the controller we want to test
beforeEach(inject(function (_$controller_, _$rootScope_) {
scope = _$rootScope_.$new();
$controller = _$controller_;
}));
// Verify our controller exists
it('should be defined', function() {
expect(settingsCtrl).toBeDefined();
});
});
这是我的问题
TypeError: $browser.state is not a function
at
at $LocationProvider.$get (tests/_bower.min.js:23406:34)
at Object.invoke (tests/_bower.min.js:15717:17)
at tests/_bower.min.js:15534:37
at getService (tests/_bower.min.js:15676:39)
at Object.invoke (tests/_bower.min.js:15708:13)
at tests/_bower.min.js:15534:37
at getService (tests/_bower.min.js:15676:39)
at Object.invoke (tests/_bower.min.js:15708:13)
at tests/_bower.min.js:15538:79
at forEach (tests/_bower.min.js:11575:20)
TypeError: Cannot read property 'checkOverlapForADRrow' of undefined
at
at UserContext. (tests/demotest.spec.js:68:31)
at
Chrome 66.0.3359 (Windows 7 0.0.0): Executed 1 of 1 (1 FAILED) ERROR (0.004 secs / 0 secs)