@bornkiller
2014-11-21T15:45:50.000000Z
字数 1098
阅读 2886
angularjs
Angularjs相对来说算是上手难度较大的框架之一,官方提供的angular-seed自觉不够好用,对新手也非常不友好,所以才会自己搞angular-boilerplate出来,无论是用以学习,还是做简单组件开发,可以节省不少时间。
地址:https://github.com/bornkiller/angular-boilerplate
已预先配置好package.json与bower.json文件,确保本机Node, NPM环境,预先安装好bower,grunt,gulp工具。
npm install;bower install;
使用环境基本上搭建完毕,预先配置构建工具的部分任务:
# 本地预览grunt connect;# 代码质量检测gulp jshint;# 单元测试karma start;# 持续集成grunt karma
博文中仅说明简易组件开发与测试。示例模块名为shuffleApp,未设置任何依赖。
angular.module('shuffleApp', []);
提供了控制器,服务,过滤器,指令的简单demo,自行查看即可。
angular的测试高度规范化,所以按照标准流程走即可,对几个要点做简要说明。
var $rootScope, $controller, $scope;beforeEach(module('shuffleApp'));beforeEach(inject(function (_$rootScope_, _$controller_) {$rootScope = _$rootScope_;$controller = _$controller_;}));beforeEach(function () {$scope = $rootScope.$new();$controller('MainCtrl', {'$scope': $scope});});
测试文件遵循:模块加载---依赖注入---测试用例的模式。全局module方法加载待测试模块,inject引用模块内定义的服务,并赋值给当前作用于的局部变量,前后下划线的设计,只是为了局部变量名与服务名可相同,避免不必要的上下文切换。针对依赖注入,需要注意一点,可以手动加载所有服务,也可以只加载$injector一个服务,然后通过get方法逐个获取。测试控制器,过滤器,指令分别需要依赖$controller, $filter, $compile三个服务。
QQ:491229492
github.com/bornkiller
