Şablonumda bir şablon enjekte eden ve sonra derleyen bir kodun yinelenmesini sağlarım. Bu kodu DRY şeyler tutmak için bir yardımcı işlevine ayıkladım. Sorun, bir yardımcı işlevinde beforeEach
's yerleştirmeye çalışırken inanıyorum. İşteJasmine/Angular öğesinin birden çok BeforeEach's öğesinin birleştirmesini nasıl sağlayabilirim?
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();
}));
benim yarattığım yardımcı işlevi olan:: İşte bir işlev içine soyut çalışıyorum benim kod parçasıdır
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();
}));
Ve şimdi bu yardımcı işlevine çağrıdır : benim yardımcı fonksiyonunun sonunda
setupTemplate('header.html', '<clinical-header></clinical-header>');
, her şey iyi görünüyor, ama benim it
bloğuna atladığında, her şey tanımlanmamıştır. Birden çok beforeEach
'u ayıklayabilir miyim? Bunu yapmanın doğru yolu nedir? Ayrıca, yasemin yardımcı fonksiyonlarını yerleştirmek için uygun yer neresidir ve bu nasıl yapılır?
Bu sorunu çözmez . –
Haklısınız. Bu, tüm testler için geçerlidir, dosyalarına bakılmaksızın –
Projemde çok benzer bir durum var. Global 'beforeEach' çağrılarını bir işlevin içine koydum ve bu işlevi, ihtiyaç duyduğum herhangi bir test paketi için' açıklama 'bloğumun üst kısmına çağırıyorum. –