5

मुझे यूनिट परीक्षणों को व्यवस्थित करने और मेरे जावास्क्रिप्ट एकल पृष्ठ एप्लिकेशन के लिए अंत परीक्षणों को समाप्त करने की आवश्यकता है। मैं यूनिट परीक्षण के लिए e2e परीक्षण और चाई के लिए कोणीयजेएस प्रोटैक्टर/ककड़ी का उपयोग कर रहा हूं।AngularJS में इकाई परीक्षण और e2e परीक्षणों को व्यवस्थित करने के लिए कैसे?

मेरे पास दो अलग-अलग फ़ोल्डर्स (unit और e2e फ़ोल्डर) में e2e और यूनिट परीक्षण हैं और मैं वर्तमान में page object डिज़ाइन पैटर का लाभ नहीं ले रहा हूं। फाइलें असंगठित हैं और बहुत सारे कोड साझा नहीं करती हैं, इसलिए मैं कई बार खुद को दोहरा रहा हूं।

मैं पहचान इस दृष्टिकोण पैमाने नहीं है

वहाँ इस तरह से मैं कोड कम से कम मात्रा में लिखने में परीक्षण पुनर्निर्माण करने के लिए एक सबसे अच्छा अभ्यास है, परीक्षण कोड सूखा रखने?

उत्तर

6

सबसे पहले, आप निश्चित रूप से पृष्ठ वस्तु पैटर्न उपयोग भी कर और एक अलग निर्देशिका के अंतर्गत अपने पृष्ठ वस्तुओं रखना चाहिए - मुझे लगता है कि निर्देशिका 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 द्वारा प्रस्तावित विचार पसंद है।

+0

क्या आपके पास पृष्ठ ऑब्जेक्ट का कोई उदाहरण है? –

+0

@GianlucaGhettini yup, हम मूल रूप से यहां सुझाए गए सुझावों का पालन करते हैं: https://github.com/angular/protractor/blob/master/docs/page-objects.md। – alecxe

+0

क्या यह यूनिट परीक्षणों के लिए पेज ऑब्जेक्ट्स की तरह कुछ समझ में आता है? – ganqqwerty

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