2017-04-22 68 views
0

功能的错误,我是很新的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测试场景。

请帮助

+0

请添加在您使用测试用例脚本中的$控制脚本 –

回答

0
beforeEach(inject(function($controller){ 

    controller = $controller('SearchCifCtrl', { 
    $scope: scope 
    }); 
})); 

//试试这个注入控制器