सबसे पहले, आप निश्चित रूप से पृष्ठ वस्तु पैटर्न उपयोग भी कर और एक अलग निर्देशिका के अंतर्गत अपने पृष्ठ वस्तुओं रखना चाहिए - मुझे लगता है कि निर्देशिका po
कॉल करने के लिए अनुशंसा की जाती है।
यहाँ आप के लिए एक नमूना है, परियोजना संरचना हम वर्तमान में है:
$ cd e2e
$ tree -L 1
.
├── config
├── db
├── helpers
├── mocks
├── po
└── specs
config
विशेष निर्देशिका जहां हम अपने protractor
कॉन्फ़िगरेशन रखना है - वहाँ कई कॉन्फ़िगरेशन हो सकता है - उदाहरण के लिए, स्थानीय परीक्षण के लिए और के लिए परीक्षण, कहें, ।
helpers
मूल रूप से, हमारी "libs"/"utils" निर्देशिका है। हम कस्टम जैस्मीन मैचर्स, सहायक "सहायक" मॉड्यूल को सहायक कार्यों के साथ रखते हैं। इसके अलावा, हमारे पास localStorage
और sessionStorage
मॉड्यूल हैं जो window.localStorage
और window.sessionStorage
ऑब्जेक्ट्स के आसपास सुविधाजनक रैपर हैं।
mocks
एक निर्देशिका है जहां हम protractor-http-mock
mocks रखते हैं।
po
एक निर्देशिका है जहां पेज ऑब्जेक्ट्स परिभाषित किए जाते हैं। एक अलग फ़ाइल में प्रत्येक पृष्ठ वस्तु।
specs
वह जगह है जहां हमारे सभी चश्मा रहते हैं - वे तर्कसंगत रूप से उपनिर्देशिकाओं में व्यवस्थित होते हैं।
onPrepare: function() {
global.helpers = require("../helpers/helpers.js");
// ...
},
इसके अलावा, सहायकों और पो आयात और अधिक सुविधाजनक बनाने के लिए और पेड़ में निर्देशिका ऊपर से गुजरने से बचने और बेहतर nestedness संभाल करने के लिए:
helpers
पुस्तकालयों में से कुछ made globally available via global
उदाहरण हैं, , हम requirePO
और requireHelper
सहायक समारोह @Michael Radionov ने सुझाव दिया उपयोग करने के लिए स्विच कर लें, देखें:
मुझे भी प्रत्येक पृष्ठ ऑब्जेक्ट से नोड पैकेज बनाने के लिए @finspin द्वारा प्रस्तावित विचार पसंद है।
क्या आपके पास पृष्ठ ऑब्जेक्ट का कोई उदाहरण है? –
@GianlucaGhettini yup, हम मूल रूप से यहां सुझाए गए सुझावों का पालन करते हैं: https://github.com/angular/protractor/blob/master/docs/page-objects.md। – alecxe
क्या यह यूनिट परीक्षणों के लिए पेज ऑब्जेक्ट्स की तरह कुछ समझ में आता है? – ganqqwerty