2013-12-12 14 views
11

AngularJS के लिए प्रोटैक्टर E2E परीक्षण लिखने के लिए पृष्ठ ऑब्जेक्ट मॉडल को संभालने का सही तरीका क्या है? मुझे लगता है कि मुझे उन्हें अलग-अलग फाइलों (जैसे homepage.js, page2.js, आदि) में लिखना चाहिए, फिर किसी भी तरह उन्हें मॉड्यूल जैसे चश्मा में शामिल करना चाहिए। हालांकि, मुझे नहीं पता कि उन्हें इंजेक्ट कैसे करें। किसी भी सुझाव की सराहना करेंगे। धन्यवाद!अंगुलरजेएस प्रोटैक्टर ई 2 ई परीक्षण में पृष्ठ ऑब्जेक्ट

उत्तर

20

उन्हें अलग-अलग फ़ाइलों में रखें, और किसी भी सहायक या पृष्ठ ऑब्जेक्ट्स को खींचने के लिए नोड के require का उपयोग करें। इस सुपर सरल उदाहरण को देखें: https://github.com/juliemr/ng-page-e2e/blob/master/test/angularsite_test.js#L2

0

आपको उन्हें अलग-अलग फाइलों में रखना चाहिए, हां।

और अपने चांदा referenceConf.js में (config साथ चांदा शुरू करने के लिए) आप लिखना चाहिए:

specs: ['<your_path>/test/pages/*Test.js'] 

इस मामले में < चांदा मुखौटा साथ dir से "/ परीक्षण/पृष्ठों" सभी फाइलों का शुभारंभ करेंगे * Test.js (loginPageTest.js, homePageTest.js)

+0

दुर्भाग्य से मुझे अभी तक पता नहीं था, कॉन्फ़िगरेशन में 'चश्मा' को बदले बिना एकल फ़ाइल में परीक्षण कैसे लॉन्च करें। साथ ही, यदि आप आईडीई में परीक्षण डीबग करना चाहते हैं, तो यह पोस्ट उपयोगी हो सकती है: [वेबस्टॉर्म में प्रोटैक्टर के परीक्षणों को कैसे डिबग करें] (http://stackoverflow.com/questions/20137109/how-to-debug-angular-protractor-tests -इन-वेबस्टॉर्म) –

+0

मैंने कल रात की खोज की क्योंकि मैंने इसे लागू करने की कोशिश की है कि आप इस तरह के चश्मे में पेज ऑब्जेक्ट्स शामिल नहीं कर सकते हैं। प्रत्येक फ़ाइल दूसरों के स्वतंत्र रूप से चलाया जाता है। मैं नोड की जरूरतों के आसपास एक प्रणाली का निर्माण समाप्त हो गया। – wlingke

+0

@wlingke मुझे यहां एक समान समस्या है। क्या आप कृपया मुझे दिखा सकते हैं कि आपने समस्या को हल करने के लिए क्या किया? – Shimu

0

मुझे डर है कि पेज ऑब्जेक्ट्स के साथ परीक्षण करने के लिए कोई सामान्य मानक नहीं है। आप चांदा के मुद्दों के बीच कई प्रस्ताव मिल सकता है: https://github.com/angular/protractor/issues/401 और https://github.com/angular/protractor/issues/78

मेरी जरूरतों के लिए मैं अपने ओपन सोर्स प्रोजेक्ट में बहुत ही सरल पेज ऑब्जेक्ट का निर्माण, देखें: https://github.com/9ci/angle-grinder/pull/124

भी काफी रोचक कार्यान्वयन आप में मिल सकता है https://github.com/juliemr/ng-page-e2e/tree/master/test

4

क्या आपने एस्ट्रोलबे के साथ प्रयास किया है? यह प्रोटैक्टर के शीर्ष पर एक पेजऑब्जेक्ट कार्यान्वयन है जो आपकी संरचना का मार्गदर्शन कर सकता है: https://github.com/stuplum/astrolabe

वहां आप देख सकते हैं कि अनुशंसित संरचना प्रति पृष्ठ एक पृष्ठ वस्तु है।

उदा .: singInPage.js

var Page = require('astrolabe').Page; 

module.exports = Page.create({ 

    url: { value: 'http://<somesite>.com/signin' }, 

    username: { get: function() { return this.findElement(this.by.input('username')); } }, // finds an input element with the name 'username' 
    submit: { get: function() { return this.findElement(this.by.id('submit')); } }  // finds an element with the id 'submit' 
}); 

यह परीक्षण मामलों के लेखन और यहां तक ​​कि पेज वस्तु बहुत कॉम्पैक्ट और पठनीय बनाता है।

संबंधित मुद्दे