在我的角应用程序中,我有大约30个控制器和1个测试文件。那些测试文件总是以这样的样板开头:
'use strict';
describe('Controller: SomeController', function ()
{
var controller;
var scope;
beforeEach(function ()
{
module('SomeControllerModule');
inject(function ($controller, $rootScope)
{
scope = $rootScope.$new();
controller = $controller('SomeController',
{
$scope: scope
});
});
});
it('should prepare controller scope', function ()
{
console.log('scope', scope);
});
});
有没有办法以某种方式缩短它,所以我不必在每个文件中重复它?
答案 0 :(得分:1)
有ng-describe看起来它可能非常有用(我还没有亲自使用它)。有了这个,您的代码就变成了:
ngDescribe({
modules: 'SomeControllerModule',
controllers: 'controller',
tests: function (deps) {
it('should prepare controller scope', function () {
console.log('scope', deps.controller);
});
}
});
不幸的是,他们目前不支持茉莉花,可能会为很多人制定茉莉花。
答案 1 :(得分:0)
是的,我有一个更清洁的方法:
describe('HomeController', function() {
var $scope;
beforeEach(module('app'));
beforeEach(inject(function($rootScope, $controller) {
$scope = $rootScope.$new();
$controller('HomeController', { $scope: $scope });
}));
it('true should be truthy', function() {
expect(true).toBeTruthy();
});
});
另请查看AngularJS项目中可能需要的所有螺母和螺栓附带的AngularJS Scaffolding。