मैं जैस्मीन के साथ अपने ऐप का परीक्षण करने की कोशिश करता हूं और निम्न समस्या प्राप्त करता हूं:
मैं अपने वचन के then
फ़ंक्शन में कुछ की गणना करूंगा। यही वह बिंदु है जहां मुझे अपने कोड का परीक्षण करने की आवश्यकता है।जैस्मीन एक वादा का परीक्षण करता है। फिर फ़ंक्शन
यहाँ मेरी नियंत्रक के कोड है:
TestCtrl.$inject = ["$scope", "TestService"];
/* ngInject */
function TestCtrl($scope, TestService) {
$scope.loadData = function() {
TestService.getData().then(function (response) {
$scope.data = response.data;
$scope.filtered = $scope.data.filter(function(item){
if(item.id > 1000){
return true;
}
return false;
})
});
}
}
और मेरे जैस्मीन परीक्षण कोड:
describe('TestService tests', function() {
var $q;
beforeEach(function() {
module('pilot.fw.user');
});
beforeEach(inject(function (_$q_) {
$q = _$q_;
}));
describe('UserController Tests', function() {
beforeEach(inject(function (_$httpBackend_, $rootScope, $controller) {
this.scope = $rootScope.$new();
this.$rootscope = $rootScope;
this.$httpBackend = _$httpBackend_;
this.scope = $rootScope.$new();
var TestServiceMock = {
getData: function() {
var deferred = $q.defer();
var result = [{
"id": 1720,
"user": 1132
},
{
"id": 720,
"user": 132
}, {
"id": 1721,
"user": 1132
}];
deferred.promise.data = result;
deferred.resolve(result);
return deferred.promise;
}
};
this.controller = $controller('TestCtrl', {
'$scope': this.scope,
'TestService': TestServiceMock
});
}));
it('test', function(){
this.scope.loadData();
expect(true).toBeTruthy();
})
});
});
अजीब बात मुझे समझ नहीं आता (कंसोल लॉग के साथ परीक्षण किया गया) है:
- मेरा वादा बनाया गया है और
- मेरा लोडडेटा फू nction कहा जाता है और यह TestService से GetData() फ़ंक्शन कॉल करेंगे
- तो समारोह के अंदर सब कुछ, हालांकि मैं वादा के रूप में हल हो गई
तो मैं अंदर कोड का परीक्षण कर सकता है लौटने निष्पादित नहीं किया जाएगा तो फ़ंक्शन?
मदद के लिए धन्यवाद
यह ('परीक्षण', समारोह (किया) { TestServiceMock.getData() तो (समारोह (परिणाम) { console.log (परिणाम);। }); उम्मीद (सही) .toBeTruthy(); किया(); }) मैं इसे इस तरह से है, लेकिन मेरे कंसोल लॉग isn't की कोशिश की भी कहा जाता है ... एक ही समस्या के रूप में पहले:/ - CodeStyle के लिए खेद है - आपकी मदद के लिए टैंक –
आप कर कॉल कर रहे हैं 'फिर' के बाहर! सुनिश्चित करें कि 'किया गया' आपके बाद के तरीकों के अंदर है :) –
अन्यथा, वादे को हल करने से पहले आप निष्पादित कर रहे हैं, बहुत कम पता है कि इसका नतीजा क्या था। ध्यान दें कि मेरे उदाहरण में, मैं उम्मीद विधि में वादे का परिणाम पास करता हूं? यह केवल तभी काम करता है जब इसे हल किया जाता है, जो 'तो' –