Unit testing AngularJS 2.0-如何测试应用程序?
我正在构建一个AngularJS应用程序(使用ES6),该应用程序尽可能多地使用AngularJS 2.0,因此我不会有太多的迁移工作Unit testing AngularJS 2.0-如何测试应用程序?,unit-testing,angular,ecmascript-6,karma-jasmine,Unit Testing,Angular,Ecmascript 6,Karma Jasmine,我正在构建一个AngularJS应用程序(使用ES6),该应用程序尽可能多地使用AngularJS 2.0,因此我不会有太多的迁移工作 正如您所知,不会有我们在中所知道的控制器,您可以使用全局名称定义控制器,然后在指令中引用它: //LoginSidebarController.js class LoginSidebarController { // controller code here } export default LoginSidebarController //LoginS
正如您所知,不会有我们在中所知道的控制器,您可以使用全局名称定义控制器,然后在指令中引用它:
//LoginSidebarController.js
class LoginSidebarController {
// controller code here
}
export default LoginSidebarController
//LoginSidebarDirective.js
export default function() {
return {
scope: {},
templateUrl: 'tpl/path/to/loginSidebar.tpl.html',
replace: true,
controller: 'LoginSidebarController',
controllerAs: 'loginSidebarCtrl'
};
};
//app.js
import loginSidebarDirective from "./js/component/loginSidebar/LoginSidebarDirective.js";
import LoginSidebarController from "./js/component/loginSidebar/LoginSidebarController.js";
angular.module('myModule', [])
.directive('loginSidebar', loginSidebarDirective)
.controller('LoginSidebarController', LoginSidebarController)
然后,您可以要求控制器和其他常规控制器一样,独立于指令对其进行测试
第二种方法是通过angular.element().controller('loginSidebar')
方法访问控制器。大概是这样的:
var testElm = angular.element('<login-sidebar />');
$compile(testElm);
testElm.controller('loginSidebar')
var testElm=angular.element(“”);
$compile(testElm);
testElm.controller('loginSidebar'))
//LoginSidebarController.js
class LoginSidebarController {
// controller code here
}
export default LoginSidebarController
//LoginSidebarDirective.js
export default function() {
return {
scope: {},
templateUrl: 'tpl/path/to/loginSidebar.tpl.html',
replace: true,
controller: 'LoginSidebarController',
controllerAs: 'loginSidebarCtrl'
};
};
//app.js
import loginSidebarDirective from "./js/component/loginSidebar/LoginSidebarDirective.js";
import LoginSidebarController from "./js/component/loginSidebar/LoginSidebarController.js";
angular.module('myModule', [])
.directive('loginSidebar', loginSidebarDirective)
.controller('LoginSidebarController', LoginSidebarController)
var testElm = angular.element('<login-sidebar />');
$compile(testElm);
testElm.controller('loginSidebar')