2017-03-09 3 views
1

Ich habe vielleicht ungewöhnliche Situation, wo ich Text aus einem Element in einer Hilfsdatei abrufen und dann diesen Text in der Spezifikationsdatei vergleichen muss. Zum Beispiel:Winkelmesser: Variable aus Hilfsdatei in Spezifikationsdatei verwenden

Beiden Seiten-Dateien:

this.matchText = function(elem) { 
    return elem.getText(); 
}; 

Helper-Datei:

 // page objects 
     var calculationPage = require('../calculation_page/calculation_page.js'); 

     // variables 
     var globalPrice = ""; 

     module.exports = exports = function() { 
      describe('... 
       it('... 
        // initialize page object 
        var calculation = new calculationPage(); 

        // store price into global variable 
        calculation.matchText(calculation.price).then(function(text) { 
         globalPrice = text; 
        }); 

        // verify price equals expected 
        expect(calculation.matchText(calculation.priceSum)).toContain(globalPrice); 

        ??? 
       }); 
      }); 
     } 

Wie Globalpreis als Variable zu speichern, die Spec-Datei weitergegeben werden kann?

Spec-Datei:

// page objects 
var homePage = require('../home_page/home_page.js'); 

// helpers 
var getPrice = require('../helpers/get_price.js'); 

describe('... 
    it('... 

     // helper - get price 
     getPrice(); 

     // initialize page object 
     var home = new homePage(); 

     // verify if price equals expected 
     expect(home.matchText(home.price)).toContain(???); 
    }); 
}); 

Wie globale Variable von Hilfsdatei in Spec-Datei lesen?

+0

Warum Sie 'describe' haben,' Es 'und' expect' Blöcke in der Helfer-Datei? – Gunderson

+0

Weil ich diese derzeit als Helfer in einer Spezifikation nenne, aber sie in Spezifikationsdateien ändern werde. – jurijk

Antwort

1

Sie können alle Werte, die Sie benötigen, global auf das globale Objekt "Protractor" ausgeben - browser.

Lets sagen .. in Hilfsdatei müssen Sie den Wert speichern. Dann tun Sie dies - browser.globalPrice = text

Und dann wäre dieser Wert in Ihrer Spec-Datei verfügbar. Der Zugang aus dem browser Objekt wie jeder anderen Wert expect(home.matchText(home.price)).toContain(browser.globalPrice);

Sehen meine Antwort @Protractor: initialise Global variable in one js and use the same var in other js

+0

DANKE! Das ist es! ;) Genau nach was ich gesucht habe. – jurijk

+0

Nur eine kurze Frage;) Ich kann alles so speichern, wie du es geschrieben hast? – jurijk

+0

@jurijk .. Willkommen! und ja, Sie können alles speichern ... komplexe Objekte, Referenzen alles – AdityaReddy

Verwandte Themen