के साथ एक कोणीय वादा का परीक्षण करना निम्नलिखित परीक्षण विफल रहता है और मैं यह नहीं समझ सकता कि क्यों? मैं जैस्मीन के साथ पेशे/वादे का परीक्षण करने का तरीका जानने का प्रयास कर रहा हूं।जैस्मीन
त्रुटि
Expected undefined to be 'Resolved Data'.
टेस्ट
describe('Queued Repository', function() {
var ctrl,
rootScope,
scope,
service;
beforeEach(function() {
module('testApp');
inject(function ($rootScope, $controller, TestSrvc) {
rootScope = $rootScope;
scope = $rootScope.$new();
service = TestSrvc;
});
});
afterEach(inject(function ($rootScope) {
$rootScope.$apply();
}));
it('test something', function() {
expect(service.calculate(1, 5)).toBe(6);
});
it('resolves promises', function() {
var result;
service.getPromise().then(function (data) {
result = data;
});
rootScope.$apply();
expect(result).toBe('Resolved Data');
});
});
सेवा
var app = angular.module('testApp', []);
app.service('TestSrvc', ['$q', '$timeout', '$http', function ($q, $timeout, $http) {
return {
getPromise: function() {
var d = $q.defer();
$timeout(function() {
d.resolve('Defered Result');
}, 5000);
return d.promise;
},
getSomething: function() {
return "Test";
},
calculate: function (x, y) {
return x + y;
}
}
}]);
क्या यह उम्मीद नहीं करनी चाहिए (परिणाम) .toEqual ('परिणाम का परिणाम'); '? –
@ जोनाथनपलम्बो - हाँ, लेकिन यह अभी भी काम नहीं करता है। – Sam
हां मैं देखता हूं कि आपका क्या मतलब है, परिणाम 'अपरिभाषित' है। अगर यह एक वादा था '$ http' लौटाया गया तो मैं आपके दावे से पहले '$ httpBackend.flush()' को कॉल करने का सुझाव दूंगा। हालांकि '$ q' सेवा का उपयोग करना एक और कहानी है। –