我不断在我的规范文件中重复一些代码,这些代码注入一个模板然后编译它。我将这段代码提取到一个辅助函数中以保持干燥。我相信问题在于试图将 to 放置beforeEach
在辅助函数中。这是我试图抽象成函数的代码片段:
beforeEach(module('app/views/header.html'));
beforeEach(inject(function($templateCache, $compile, $rootScope) {
template = $templateCache.get('app/views/header.html');
$templateCache.put('views/header.html', template);
var directive = angular.element('<clinical-header></clinical-header>');
element = $compile(directive)($rootScope);
$rootScope.$digest();
}));
这是我创建的辅助函数:
var setupTemplate = function(templateName, element) {
beforeEach(module('app/views/' + templateName));
beforeEach(inject(function($templateCache, $compile, $rootScope) {
var template = $templateCache.get('app/views/' + templateName);
$templateCache.put('views/' + templateName, template);
var directive = angular.element(element);
element = $compile(directive)($rootScope);
$rootScope.$digest();
}));
现在这是对辅助函数的调用:
setupTemplate('header.html', '<clinical-header></clinical-header>');
在我的辅助函数结束时,一切看起来都很好,但是当我跳到我的it
块时,一切都是未定义的。我可以提取多个beforeEach
's 吗?这样做的正确方法是什么?此外,在哪里放置 jasmine 辅助函数的正确位置以及如何完成?