功能的错误,我是很新的Angularjs。我有一个单页应用中的index.html是根page.it包含以下内容
的index.html
//links to other pages
//ng-view
我有一个app.js文件链接到index.html的它加载当用户使用ngRoute点击index.html中的链接时,相应的页面。
我app.js网页看起来是这样的
app.js
'use strict';
angular.module('myApp', [ 'ngRoute', 'ngAnimate', 'ngSanitize',
'ui.bootstrap', 'checklist-model', 'blockUI','isteven-multi-select' ]);
var App = angular.module('myApp');
//ngroute code
现在页面search_name.html和search_name_controller.js当用户点击索引的链接之一下载html的
search_name_controller看起来是这样的。
search_name_controller.js
'use strict';
App.controller('SearchCifCtrl', [ '$scope', '$location', '$uibModal',
'WorkflowService', 'ConstantService', function($scope, $location, $uibModal,
WorkflowService, ConstantService) {
//some code
} ]);
Snce它是一个单页的应用程序angular.module语句只在app.js文件写入。它不是写在任何其他js文件中。现在我想测试search_name_controller.js使用KARMA.I都这样写search_name_controller.test.js下面
describe('search_name_controller', function() {
beforeEach(function() {
module('myApp');
});
var $controller;
beforeEach(inject(function(_$controller_){
$controller = _$controller_;
}));
//code to test method
});
虽然我尝试运行这个测试,我得到的错误是“测试代码$控制器不是一个函数”。我觉得错误是因为angular.module部分没有在search_name_controller.js文件中定义。当我尝试添加它时,我可以运行测试。但我不允许对现有代码进行任何更改。有什么办法在我的测试文件可以读取app.js文件angular.module一部分,即使我写search_name_controller.js测试场景。
请帮助
请添加在您使用测试用例脚本中的$控制脚本 –