AngularJS यूनिट परीक्षण: कर्मा जैस्मीन ट्यूटोरियल
Angular.JS की सबसे शानदार विशेषताओं में से एक है परीक्षण जब गूगल के डेवलपर्स ने AngularJS का विकास किया, तो उन्होंने परीक्षण को ध्यान में रखा और सुनिश्चित किया कि संपूर्ण AngularJS फ्रेमवर्क परीक्षण योग्य हो।
AngularJS में, परीक्षण सामान्यतः Karma (फ्रेमवर्क) का उपयोग करके किया जाता है। Angular JS परीक्षण Karma के बिना भी किया जा सकता है, लेकिन Karma फ्रेमवर्क में AngularJS कोड के परीक्षण के लिए इतनी शानदार कार्यक्षमता है कि इस फ्रेमवर्क का उपयोग करना समझदारी है।
- AngularJS में, हम प्रदर्शन कर सकते हैं इकाई का परीक्षण नियंत्रकों और निर्देशों के लिए अलग-अलग।
- हम AngularJS का अंतिम परीक्षण भी कर सकते हैं, जो कि उपयोगकर्ता के नजरिए से परीक्षण है।
कर्मा फ्रेमवर्क का परिचय और स्थापना
कर्म एक परीक्षण स्वचालन उपकरण Google की Angular JS टीम द्वारा बनाया गया। Karma का उपयोग करने के लिए पहला कदम Karma को इंस्टॉल करना है। Karma को npm (जो एक पैकेज मैनेजर है जिसका उपयोग स्थानीय मशीन पर मॉड्यूल की आसान स्थापना के लिए किया जाता है) के माध्यम से इंस्टॉल किया जाता है।
कर्म की स्थापना
एनपीएम के माध्यम से कर्मा की स्थापना दो चरणों की प्रक्रिया में की जाती है।
चरण 1) कमांड लाइन के अंदर से नीचे दी गई लाइन को निष्पादित करें
npm install karma karma-chrome-launcher karma-jasmine
जिसमें,
- एनपीएम नोड पैकेज मैनेजर के लिए कमांड लाइन उपयोगिता है जिसका उपयोग किसी भी मशीन पर कस्टम मॉड्यूल स्थापित करने के लिए किया जाता है।
- इंस्टॉल पैरामीटर npm कमांड लाइन उपयोगिता को निर्देश देता है कि इंस्टॉलेशन आवश्यक है।
- कमांड लाइन में 3 लाइब्रेरीज़ निर्दिष्ट की जा रही हैं जो कर्मा के साथ काम करने के लिए आवश्यक हैं।
- कर्मा कोर लाइब्रेरी है जिसका उपयोग परीक्षण उद्देश्यों के लिए किया जाएगा।
- कर्मा-क्रोम-लॉन्चर एक अलग लाइब्रेरी है जो क्रोम ब्राउज़र द्वारा कर्मा कमांड को पहचानने में सक्षम बनाती है।
- कर्म-चमेली - यह चमेली को स्थापित करता है जो कर्म के लिए एक आश्रित ढांचा है।
चरण 2) अगला चरण कर्मा कमांड लाइन यूटिलिटी को इंस्टॉल करना है। कर्मा लाइन कमांड को निष्पादित करने के लिए यह आवश्यक है। कर्मा लाइन यूटिलिटी का उपयोग कर्मा वातावरण को परीक्षण के लिए आरंभ करने के लिए किया जाएगा।
कमांड लाइन उपयोगिता को स्थापित करने के लिए कमांड लाइन के भीतर से नीचे दी गई लाइन को निष्पादित करें
npm install karma-cli
जिसमें,
कर्मा फ्रेमवर्क का विन्यास
अगला चरण कर्म को कॉन्फ़िगर करना है जो कमांड के माध्यम से किया जा सकता है
"karma –init"
उपरोक्त चरण निष्पादित होने के बाद, कर्मा एक karma.conf.js फ़ाइल बनाएगा। फ़ाइल संभवतः नीचे दिखाए गए स्निपेट की तरह दिखाई देगी
files: [ 'Your application Name'/AngularJS/AngularJS.js', 'Your application Name'/AngularJS-mocks/AngularJS-mocks.js', 'lib/app.js', 'tests/*.js' ]
उपरोक्त कॉन्फ़िगरेशन फ़ाइलें कर्मा रनटाइम इंजन को निम्नलिखित बातें बताती हैं
- 'आपका आवेदन नाम' - इसे आपके आवेदन के नाम से प्रतिस्थापित कर दिया जाएगा।
- 'आपके एप्लिकेशन का नाम'/AngularJS/AngularJS.js' - यह कर्मा को बताता है कि आपका एप्लिकेशन AngularJS के मुख्य मॉड्यूल पर निर्भर करता है
- 'आपका एप्लिकेशन नाम'/AngularJS-mocks/AngularJS-mocks.js' - यह कर्मा को Angular.JS-mocks.js फ़ाइल से AngularJS के लिए यूनिट परीक्षण कार्यक्षमता का उपयोग करने के लिए कहता है।
- सभी मुख्य एप्लिकेशन या व्यवसाय तर्क फ़ाइलें आपके एप्लिकेशन के lib फ़ोल्डर में मौजूद होती हैं।
- परीक्षण फ़ोल्डर में सभी यूनिट परीक्षण शामिल होंगे।
यह जांचने के लिए कि क्या कर्मा काम कर रहा है, Sample.js नामक एक फ़ाइल बनाएं, नीचे दिए गए कोड को डालें और इसे परीक्षण निर्देशिका में रखें।
describe('Sample test', function() { it('Condition is true', function() { expect('AngularJS').toBe('AngularJS'); }); });
उपरोक्त कोड के निम्नलिखित पहलू हैं
- परीक्षण का विवरण देने के लिए डिस्क्राइब फ़ंक्शन का उपयोग किया जाता है। हमारे मामले में, हम अपने परीक्षण को 'सैंपल टेस्ट' का विवरण दे रहे हैं।
- 'it' फ़ंक्शन का उपयोग परीक्षण को नाम देने के लिए किया जाता है। हमारे मामले में, हम अपने परीक्षण का नाम 'Condition is true' दे रहे हैं। परीक्षण का नाम सार्थक होना चाहिए।
- 'एक्सपेक्ट' और 'टूबी' कीवर्ड का संयोजन बताता है कि परीक्षण परिणाम का अपेक्षित और वास्तविक मूल्य क्या है। यदि वास्तविक और अपेक्षित मूल्य समान है, तो परीक्षण पास हो जाएगा अन्यथा यह विफल हो जाएगा।
जब आप कमांड प्रॉम्प्ट पर निम्न पंक्ति निष्पादित करते हैं, तो यह उपरोक्त परीक्षण फ़ाइल निष्पादित करेगा
KARMA start
नीचे दिया गया आउटपुट IDE से लिया गया है Webstorm जिसमें उपरोक्त कदम उठाए गए।
- आउटपुट कर्मा एक्सप्लोरर में आता है Webstormयह विंडो उन सभी परीक्षणों के निष्पादन को दिखाती है जो कर्मा फ्रेमवर्क में परिभाषित हैं।
- यहां आप देख सकते हैं कि निष्पादित परीक्षण का विवरण दिखाया गया है जो कि “नमूना परीक्षण” है।
- इसके बाद, आप देख सकते हैं कि परीक्षण जिसका नाम "स्थिति सत्य है" है, निष्पादित किया गया है।
- ध्यान दें कि चूंकि सभी परीक्षणों के आगे हरे रंग का “ओके” चिह्न है, जो दर्शाता है कि सभी परीक्षण पास हो गए हैं।
AngularJS नियंत्रकों का परीक्षण
कर्मा परीक्षण ढांचे में कंट्रोलर्स को अंत से अंत तक परीक्षण करने की कार्यक्षमता भी है। इसमें $scope ऑब्जेक्ट का परीक्षण शामिल है जिसका उपयोग कंट्रोलर्स के भीतर किया जाता है।
आइये एक उदाहरण देखें कि हम इसे कैसे प्राप्त कर सकते हैं।
हमारे उदाहरण में,
हमें सबसे पहले एक नियंत्रक को परिभाषित करना होगा। यह नियंत्रक नीचे दिए गए चरणों को पूरा करेगा
- एक ID वैरिएबल बनाएं और उसे मान 5 निर्दिष्ट करें.
- $scope ऑब्जेक्ट को ID वैरिएबल असाइन करें.
हमारा परीक्षण इस नियंत्रक के अस्तित्व का परीक्षण करेगा और यह भी देखेगा कि $scope ऑब्जेक्ट का ID वैरिएबल 5 पर सेट है या नहीं।
सबसे पहले हमें यह सुनिश्चित करना होगा कि निम्नलिखित पूर्व-आवश्यकताएं पूरी हों
Npm के माध्यम से Angular.JS-mocks लाइब्रेरी स्थापित करें। यह कमांड प्रॉम्प्ट में नीचे दी गई लाइन को निष्पादित करके किया जा सकता है
npm install Angular JS-mocks
अगला चरण karma.conf.js फ़ाइल को संशोधित करना है ताकि यह सुनिश्चित हो सके कि परीक्षण के लिए सही फ़ाइलें शामिल की गई हैं। नीचे दिया गया खंड karma.conf.js के केवल उन फ़ाइलों वाले भाग को दिखाता है जिन्हें संशोधित करने की आवश्यकता है
files: ['lib/AngularJS.js','lib/AngularJS-mocks.js','lib/index.js','test/*.js']
- 'फ़ाइलें' पैरामीटर मूलतः कर्मा को उन सभी फ़ाइलों के बारे में बताता है जो परीक्षणों को चलाने के लिए आवश्यक हैं।
- AngularJS यूनिट परीक्षण चलाने के लिए AngularJS.js और AngularJS-mocks.js फ़ाइल की आवश्यकता होती है
- index.js फ़ाइल में नियंत्रक के लिए हमारा कोड शामिल होगा
- टेस्ट फ़ोल्डर में हमारे सभी AngularJS टेस्ट शामिल होंगे
नीचे हमारा Angular.JS कोड है जो हमारे एप्लिकेशन के टेस्ट फ़ोल्डर में Index.js फ़ाइल के रूप में संग्रहीत किया जाएगा।
नीचे दिया गया कोड बस निम्नलिखित कार्य करता है
- एक बनाएं एंगुलरजेएस मॉड्यूल सैंपलऐप कहा जाता है
- AngularJSController नामक एक नियंत्रक बनाएँ
- ID नामक एक वैरिएबल बनाएं, इसे 5 का मान दें और इसे $scope ऑब्जेक्ट को असाइन करें
var sampleApp = AngularJS.module('sampleApp',[]); sampleApp.controller('AngularJSController', function($scope) { $scope.ID =5; });
एक बार उपरोक्त कोड सफलतापूर्वक निष्पादित हो जाने पर, अगला चरण एक बनाना होगा परीक्षण का मामला यह सुनिश्चित करने के लिए कि कोड ठीक से लिखा और निष्पादित किया गया है।
हमारे परीक्षण का कोड नीचे दिखाया गया है।
कोड ControllerTest.js नामक एक अलग फ़ाइल में होगा, जिसे टेस्ट फ़ोल्डर में रखा जाएगा। नीचे दिया गया कोड बस निम्नलिखित मुख्य कार्य करता है
- beforeEach फ़ंक्शन - इस फ़ंक्शन का उपयोग टेस्ट रन से पहले हमारे AngularJS.JS मॉड्यूल को लोड करने के लिए किया जाता है जिसे 'sampleApp' कहा जाता है। ध्यान दें कि यह index.js फ़ाइल में मॉड्यूल का नाम है।
- $controller ऑब्जेक्ट को नियंत्रक "Angular JSController" के लिए मॉकअप ऑब्जेक्ट के रूप में बनाया गया है जिसे हमारी index.js फ़ाइल में परिभाषित किया गया है। किसी भी तरह के यूनिट परीक्षण में, एक नकली ऑब्जेक्ट एक डमी ऑब्जेक्ट का प्रतिनिधित्व करता है जिसका वास्तव में परीक्षण के लिए उपयोग किया जाएगा। यह नकली ऑब्जेक्ट वास्तव में हमारे नियंत्रक के व्यवहार का अनुकरण करेगा।
- beforeEach(inject(function(_$controller_) – इसका उपयोग हमारे परीक्षण में नकली ऑब्जेक्ट को इंजेक्ट करने के लिए किया जाता है ताकि यह वास्तविक नियंत्रक की तरह व्यवहार करे।
- var $scope = {}; यह $scope ऑब्जेक्ट के लिए बनाया जा रहा एक नकली ऑब्जेक्ट है।
- var controller = $controller('AngularJSController', { $scope: $scope }); – यहाँ हम 'Angular.JSController' नामक नियंत्रक के अस्तित्व की जाँच कर रहे हैं। यहाँ हम Index.js फ़ाइल में हमारे नियंत्रक में हमारे $scope ऑब्जेक्ट से सभी चर को हमारी परीक्षण फ़ाइल में $scope ऑब्जेक्ट में असाइन कर रहे हैं।
- अंत में, हम $scope.ID की तुलना 5 से कर रहे हैं
describe('AngularJSController', function() { beforeEach(module('sampleApp')); var $controller; beforeEach(inject(function(_$controller_){ $controller = _$controller_; })); describe('$scope.ID', function() { it('Check the scope object', function() { var $scope = {}; var controller = $controller('AngularJSController', { $scope: $scope }); expect($scope.ID).toEqual(5); }); }); });
उपरोक्त परीक्षण कर्मा ब्राउज़र में चलेगा और वही पास परिणाम देगा जैसा कि पिछले विषय में दिखाया गया था।
AngularJS निर्देशों का परीक्षण
कर्मा परीक्षण ढांचे में कस्टम निर्देशों का परीक्षण करने की कार्यक्षमता भी है। इसमें टेम्पलेट यूआरएल शामिल हैं जिनका उपयोग कस्टम निर्देशों के भीतर किया जाता है।
आइये एक उदाहरण देखें कि हम इसे कैसे प्राप्त कर सकते हैं।
हमारे उदाहरण में, हम पहले एक कस्टम डायरेक्टिव परिभाषित करेंगे जो निम्नलिखित कार्य करता है
- sampleApp नामक एक AngularJS मॉड्यूल बनाएं
- नाम के साथ एक कस्टम निर्देश बनाएं – गुरु99
- एक फ़ंक्शन बनाएं जो एक हेडर टैग के साथ एक टेम्पलेट लौटाता है जो "यह AngularJS परीक्षण है" पाठ प्रदर्शित करता है।
var sampleApp = AngularJS.module('sampleApp',[]); sampleApp.directive('Guru99', function () { return { restrict: 'E', replace: true, template: '<h1>This is AngularJS Testing</h1>' }; });
एक बार जब उपरोक्त कोड सफलतापूर्वक निष्पादित हो जाता है, तो अगला चरण एक परीक्षण केस बनाना होगा ताकि यह सुनिश्चित किया जा सके कि कोड ठीक से लिखा और निष्पादित किया गया है। हमारे परीक्षण के लिए कोड नीचे दिखाए अनुसार होगा
कोड DirectiveTest.js नामक एक अलग फ़ाइल में होगा, जिसे टेस्ट फ़ोल्डर में रखा जाएगा। नीचे दिया गया कोड बस निम्नलिखित मुख्य कार्य करता है
- beforeEach फ़ंक्शन - इस फ़ंक्शन का उपयोग परीक्षण चलाने से पहले 'sampleApp' नामक हमारे Angular JS मॉड्यूल को लोड करने के लिए किया जाता है।
- $compile सेवा का उपयोग निर्देश को संकलित करने के लिए किया जाता है। यह सेवा अनिवार्य है और इसे घोषित करने की आवश्यकता है ताकि Angular.JS इसका उपयोग हमारे कस्टम निर्देश को संकलित करने के लिए कर सके।
- $rootscope किसी भी AngularJS.JS एप्लीकेशन का प्राथमिक दायरा है। हमने पिछले अध्यायों में नियंत्रक के $scope ऑब्जेक्ट को देखा है। खैर, $scope ऑब्जेक्ट $rootscope ऑब्जेक्ट का चाइल्ड ऑब्जेक्ट है। इसे यहाँ घोषित करने का कारण यह है कि हम अपने कस्टम निर्देश के माध्यम से DOM में वास्तविक HTML टैग में बदलाव कर रहे हैं। इसलिए, हमें $rootscope सेवा का उपयोग करने की आवश्यकता है जो वास्तव में सुनती है या जानती है कि HTML दस्तावेज़ के भीतर कोई भी परिवर्तन कब होता है।
- var तत्व = $ संकलन(“ ”) – इसका उपयोग यह जाँचने के लिए किया जाता है कि क्या हमारा निर्देश उस तरह से इंजेक्ट किया गया है जैसा कि उसे करना चाहिए। हमारे कस्टम निर्देश का नाम गुरु99 है, और हम अपने कस्टम निर्देश अध्याय से जानते हैं कि जब निर्देश हमारे HTML में इंजेक्ट किया जाता है, तो इसे ' के रूप में इंजेक्ट किया जाएगा। ' इसलिए इस कथन का उपयोग उस जाँच को करने के लिए किया जाता है।
- expect(element.html()).toContain(“This is AngularJS Testing”) – इसका उपयोग expect फ़ंक्शन को निर्देश देने के लिए किया जाता है कि उसे “This is AngularJS Testing” के innerHTML टेक्स्ट को शामिल करने के लिए तत्व (हमारे मामले में div टैग) ढूंढना चाहिए।
describe('Unit testing directives', function() { var $compile, $rootScope; beforeEach(module('sampleApp')); beforeEach(inject(function(_$compile_, _$rootScope_){ $compile = _$compile_; $rootScope = _$rootScope_; })); it('Check the directive', function() { // Compile a piece of HTML containing the directive var element = $compile("<ng-Guru99></ng-Guru99>")($rootScope); $rootScope.$digest(); expect(element.html()).toContain("This is AngularJS Testing"); }); });
उपरोक्त परीक्षण कर्मा ब्राउज़र में चलेगा और वही पास परिणाम देगा जैसा कि पिछले विषय में दिखाया गया था।
AngularJS JS अनुप्रयोगों का अंत से अंत तक परीक्षण
कर्मा परीक्षण फ्रेमवर्क में प्रोट्रैक्टर नामक फ्रेमवर्क के साथ-साथ एक वेब एप्लिकेशन को शुरू से अंत तक परीक्षण करने की कार्यक्षमता है।
अतः यह केवल निर्देशों और नियंत्रकों का परीक्षण नहीं है, बल्कि HTML पृष्ठ पर प्रदर्शित होने वाली किसी भी अन्य चीज़ का परीक्षण भी है।
आइये एक उदाहरण देखें कि हम इसे कैसे प्राप्त कर सकते हैं।
नीचे दिए गए हमारे उदाहरण में, हमारे पास एक AngularJS अनुप्रयोग होगा जो ng-repeat निर्देश का उपयोग करके एक डेटा तालिका बनाता है।
- हम सबसे पहले "ट्यूटोरियल" नामक एक वैरिएबल बना रहे हैं और एक चरण में इसे कुछ कुंजी-मूल्य जोड़े असाइन कर रहे हैं। प्रत्येक कुंजी-मूल्य जोड़ी का उपयोग तालिका प्रदर्शित करते समय डेटा के रूप में किया जाएगा। फिर ट्यूटोरियल वैरिएबल को स्कोप ऑब्जेक्ट को असाइन किया जाता है ताकि इसे हमारे दृश्य से एक्सेस किया जा सके।
- तालिका में डेटा की प्रत्येक पंक्ति के लिए, हम ng-repeat निर्देश का उपयोग कर रहे हैं। यह निर्देश ट्यूटोरियल स्कोप ऑब्जेक्ट में प्रत्येक कुंजी-मूल्य जोड़ी के माध्यम से चर ptutor का उपयोग करके जाता है।
- अंत में, हम उपयोग कर रहे हैं कुंजी मान युग्मों के साथ टैग (ptutor.Name और ptutor.Descriptतालिका डेटा प्रदर्शित करने के लिए (ion) का उपयोग करें।
<table > <tr ng-repeat="ptutor in tutorial"> <td>{{ ptutor.Name }}</td> <td>{{ ptutor.Description }}</td> </tr> </table> </div> <script type="text/javascript"> var app = AngularJS.module('DemoApp', []); app.controller('DemoController', function($scope) { $scope.tutorial =[ {Name: "Controllers" , Description : "Controllers in action"}, {Name: "Models" , Description : "Models and binding data"}, {Name: "Directives" , Description : "Flexibility of Directives"} ] });
एक बार जब उपरोक्त कोड सफलतापूर्वक निष्पादित हो जाता है, तो अगला चरण एक परीक्षण केस बनाना होगा ताकि यह सुनिश्चित किया जा सके कि कोड ठीक से लिखा और निष्पादित किया गया है। हमारे परीक्षण के लिए कोड नीचे दिखाए अनुसार होगा
हमारा परीक्षण वास्तव में ng-repeat निर्देश का परीक्षण करेगा और यह सुनिश्चित करेगा कि इसमें डेटा की 3 पंक्तियाँ हों, जैसा कि उपरोक्त उदाहरण में होना चाहिए।
सबसे पहले हमें यह सुनिश्चित करना होगा कि निम्नलिखित पूर्व-आवश्यकताएं पूरी हों
एनपीएम के माध्यम से प्रोट्रैक्टर लाइब्रेरी स्थापित करें। यह कमांड प्रॉम्प्ट में नीचे दी गई लाइन को निष्पादित करके किया जा सकता है
"npm install protractor"
हमारे परीक्षण का कोड नीचे दिखाया गया है।
कोड एक अलग फ़ाइल में होगा जिसका नाम CompleteTest.js होगा, जिसे टेस्ट फ़ोल्डर में रखा जाएगा। नीचे दिया गया कोड बस निम्नलिखित मुख्य कार्य करता है
- ब्राउज़र फ़ंक्शन प्रोट्रैक्टर लाइब्रेरी द्वारा प्रदान किया जाता है और यह मानता है कि हमारा AngularJS एप्लिकेशन (ऊपर दिखाए गए कोड के साथ) हमारी साइट URL - http://localhost:8080/Guru99/ पर चल रहा है।
- var list=element.all(by.repeater(ptutor in tutorial')); - कोड की यह लाइन वास्तव में ng-repeat निर्देश को प्राप्त कर रही है जो कोड 'ptutor in tutorial' द्वारा पॉपुलेट किया गया है। element और by.repeater प्रोट्रैक्टर लाइब्रेरी द्वारा प्रदान किए गए विशेष कीवर्ड हैं जो हमें ng-repeat निर्देश का विवरण प्राप्त करने की अनुमति देते हैं।
- expect(list.count()).toEqual(3); - अंत में, हम यह देखने के लिए expect फ़ंक्शन का उपयोग कर रहे हैं कि ng-repeat निर्देश के परिणामस्वरूप हमें वास्तव में हमारी तालिका में 3 आइटम मिल रहे हैं।
Describe('Unit testing end to end', function() { beforeEach(function() { browser.get('http://localhost:8080/Guru99/'); }) it('Check the ng directive', function() { var list=element.all(by.repeater(ptutor in tutorial')); expect(list.count()).toEqual(3); }); });
उपरोक्त परीक्षण कर्मा ब्राउज़र में चलेगा और वही पास परिणाम देगा जैसा कि पिछले विषय में दिखाया गया था।
सारांश
- एंगुलरजेएस में परीक्षण कर्मा फ्रेमवर्क का उपयोग करके किया जाता है, जो कि गूगल द्वारा स्वयं विकसित किया गया फ्रेमवर्क है।
- नोड पैकेज मैनेजर का उपयोग करके कर्मा फ्रेमवर्क स्थापित किया जाता है। बुनियादी परीक्षण के लिए जिन प्रमुख मॉड्यूल को स्थापित करने की आवश्यकता होती है, वे हैं कर्मा, कर्मा-क्रोम-लॉन्चर, कर्मा-जैस्मीन और कर्मा-सीएलआई।
- परीक्षण अलग-अलग js फ़ाइलों में लिखे जाते हैं, जिन्हें आम तौर पर आपके एप्लिकेशन के टेस्ट फ़ोल्डर में रखा जाता है। इन परीक्षण फ़ाइलों का स्थान karma.conf.js नामक एक विशेष कॉन्फ़िगरेशन फ़ाइल में उल्लेखित होना चाहिए। सभी परीक्षणों को निष्पादित करते समय Karma इस कॉन्फ़िगरेशन फ़ाइल का उपयोग करता है।
- कर्मा का उपयोग नियंत्रकों और कस्टम निर्देशों का परीक्षण करने के लिए भी किया जा सकता है।
- एंड टू एंड वेब टेस्टिंग के लिए, नोड, पैकेज मैनेजर के माध्यम से प्रोट्रैक्टर नामक एक अन्य फ्रेमवर्क को इंस्टॉल करना होगा। यह फ्रेमवर्क विशेष विधियाँ प्रदान करता है जिनका उपयोग HTML पेज पर सभी तत्वों का परीक्षण करने के लिए किया जा सकता है।