में html2js मैं कर्म और जैस्मीन उपयोग कर रहा हूँ उपयोग करने के लिए। मेरे पास एक निर्देश है (निर्देशक ए कहें) टेम्पलेट जिसमें एक और निर्देश (निर्देशक बी कहें) प्रस्तुत किया जा रहा है, हालांकि यह एप्लिकेशन में ठीक काम कर रहा है लेकिन परीक्षण केस डायरेक्टिव बी के टेम्पलेट को प्रस्तुत करने में विफल रहता है।त्रुटि: अनपेक्षित अनुरोध: प्राप्त विचारों/partials/* एक नेस्टेड निर्देश भी जब मेरी AngularJS आवेदन के लिए इकाई परीक्षण के लिए कर्म/चमेली इकाई परीक्षण
Error: Unexpected request: GET views/partials/directiveb.html
Expected GET https://my-sandbox.app.com/123456
नीचे निर्देश ए का कोड है: - -: के बाद त्रुटि मैं मिलता है
angular.module('myApp')
.directive('directiveA', function (myservices, myOtherServices) {
return {
controller: function(){
/* ... controller function ... */
},
templateUrl: '/views/partials/directivea.html',
restrict: 'E',
link: function postLink(scope, element, attrs) {
/* ...link function... */
}
};
});
निर्देशक एक के टेम्पलेट: -
<div>
<div class="col-md-12">
<h4>We <strong>Need</strong></h4>
<div directive-b some-attribute=="true"></div>
</div>
<div directive-b some-attribute=="false"></div>
</div>
निर्देशक ए के परीक्षण का मामला: -
'use strict';
describe('Directive: directiveA', function() {
// load the directive's module
beforeEach(module('myApp'));
beforeEach(module('template-module'));
var element, appId, reqResponse, scope, dscope, reqUrl, $httpBackend, $compile;
beforeEach(inject(function ($rootScope, _$httpBackend_) {
scope = $rootScope.$new();
$httpBackend = _$httpBackend_;
appId = "123456";
reqUrl = "https://my-sandbox.app.com/" + appId;
reqResponse = {}
}));
it('should Pass', inject(function (_$compile_) {
$httpBackend.expect('GET', reqUrl).respond(reqResponse);
$compile = _$compile_;
element = angular.element('<directive-a/>');
element = $compile(element)(scope);
scope.$digest();
$httpBackend.flush();
dscope = element.scope();
expect(dscope.myVar).toBe(true);
}));
});
कर्मा कॉन्फ़िग फ़ाइल: -
// Karma configuration
// http://karma-runner.github.io/0.12/config/configuration-file.html
// generator-karma 0.8.2
module.exports = function(config) {
config.set({
autoWatch: true,
basePath: '../',
frameworks: ['jasmine'],
preprocessors: {
'app/views/**/*.html': 'html2js'
},
ngHtml2JsPreprocessor: {
stripPrefix: "app",
moduleName: "template-module"
},
// list of files/patterns to load in the browser
files: [
'bower_components/angular/angular.js',
'bower_components/angular-mocks/angular-mocks.js',
'bower_components/angular-animate/angular-animate.js',
'bower_components/angular-cookies/angular-cookies.js',
'bower_components/angular-resource/angular-resource.js',
'bower_components/angular-route/angular-route.js',
'bower_components/angular-sanitize/angular-sanitize.js',
'bower_components/angular-touch/angular-touch.js',
'bower_components/angular-strap/dist/angular-strap.min.js',
'bower_components/angular-strap/dist/angular-strap.tpl.min.js',
'bower_components/ng-file-upload/angular-file-upload-shim.min.js',
'bower_components/ng-file-upload/angular-file-upload.js',
'bower_components/jquery/dist/jquery.js',
'app/scripts/**/*.js',
'test/mock/**/*.js',
'test/spec/**/*.js',
'app/views/**/*.html'
],
// list of files/patterns to exclude
exclude: ['test/spec/e2e/*'],
// web server port
port: 8080,
browsers: ['PhantomJS'],
// Which plugins to enable
plugins: [
// 'karma-chrome-launcher',
'karma-phantomjs-launcher',
'karma-jasmine',
'karma-ng-html2js-preprocessor'
],
// Continuous Integration mode
// if true, it capture browsers, run tests and exit
singleRun: false,
colors: true,
// level of logging
// possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
logLevel: config.LOG_INFO
// Uncomment the following lines if you are using grunt's server to run the tests
//proxies: {
// '/': 'http://localhost:9000/'
// },
// URL root prevent conflicts with the site root
// urlRoot: '_karma_'
});
};
नोट: मैं पहले से ही $ templateCache के लिए html2js उपयोग कर रहा हूँ, और अभी भी मैं इस मुद्दे को मिल रहा है।
वाह, क्या एक निरीक्षण! मैं सोच रहा था कि मेरे निर्देशों में से केवल एक ही कारण क्यों पैदा कर रहा था, क्योंकि मेरे प्रीप्रोसेसरों में सब कुछ महीनों के लिए पूरी तरह से कॉन्फ़िगर किया गया था। फिर सिर्फ एक प्रतिलिपि/पेस्ट त्रुटि। – SoEzPz
मैंने भी वही गलती की। धन्यवाद, तुमने मुझे बचा लिया! – nikjohn