का उपयोग करते समय पृष्ठ के साथ सिंक के लिए प्रतीक्षा करने वाले प्रोटैक्टर समय मैं एक छोटे AngularJS ऐप के साथ प्रोटैक्टर का परीक्षण कर रहा हूं।
इस परीक्षा है:
describe('Testing Protractor', function() {
var draftList;
it('should count the number of drafts', function() {
browser.get('#/');
draftList = element.all(by.repeater('newsletter in drafts'));
expect(draftList.count()).toEqual(2);
});
});
नियंत्रक:
angular.module('myApp.controllers', []).
controller('DraftsCtrl', ['$scope', 'Draft', function($scope, Draft) {
$scope.drafts = Draft.query();
}])
ड्राफ्ट सेवा:
:angular.module('myApp.services', ['ngResource']).
factory('Draft', ['$resource',
function($resource) {
return $resource('api/drafts/:id')
}])
इस परीक्षण निम्न त्रुटि में कोणमापक परिणामों का उपयोग चल रहा है
हालांकि, नियंत्रक में मैं इस लाइन बदलते हैं:
$scope.drafts = Draft.query();
इस के लिए
:
$scope.drafts = [];
परीक्षण की उम्मीद है, लेकिन अधिक महत्वपूर्ण बात के रूप में विफल रहता है: उसका समय नहीं है।
क्वेरी() सक्षम है, ब्राउज़र में मैन्युअल रूप से ऐप चलाने पर और प्रोटैक्टर द्वारा खोले गए ब्राउज़र विंडो को देखते समय, एपीआई द्वारा लौटाए गए डेटा को दोहराने वाले द्वारा सही ढंग से प्रदर्शित किया जाता है।
प्रोटोकेटर पृष्ठ के साथ सिंक्रनाइज़ करने में सक्षम क्यों नहीं है जब सेवा एपीआई के साथ संचार कर रही है?
कोणीयजेएस v1.2.0-rc3 है। प्रोटैक्टर v0.12.0 है।
धन्यवाद, मैं इस बाद में आज़माने और आप जानते हैं कि क्या यह काम दूँगा। मैंने वास्तव में यहां पोस्ट करने से पहले गिटहब मुद्दे को पढ़ा था, लेकिन मैं इस धारणा के तहत था कि वर्कअराउंड केवल तब आवश्यक होता है जब एक नियमित एपीआई पर एक एपीआई मतदान करते हैं जो मेरा टेस्ट ऐप नहीं कर रहा है। जब नियंत्रक प्रारंभ होता है तो यह केवल एक बार एपीआई अनुरोध भेजता है। –
यह वास्तव में सही समाधान था। चूंकि प्रोटैक्टर 0.12.0 प्रोटैक्टर के उदाहरण को 'ब्राउजर' के रूप में उजागर करता है, इसलिए 'element.ignore सिंक्रनाइज़ेशन = सत्य' को 'element.all (by.repeater (' ... ') से पहले' 'जोड़ने के लिए पर्याप्त था); '। –
पूरी तरह से काम करता है! – softvar