2013-12-12 12 views
11

Wie ist der richtige Umgang mit dem Page Objects-Modell zum Schreiben von Winkelmesser-E2E-Tests für AngularJS? Ich habe das Gefühl, ich sollte sie in separate Dateien (wie homepage.js, page2.js, etc) schreiben und dann irgendwie in die Spezifikationen wie Module nach Bedarf aufnehmen. Ich weiß jedoch nicht, wie ich sie injizieren soll. Würde mich über Vorschläge freuen. Vielen Dank!Seitenobjekte im AngularJS-Winkelmesser E2E-Test

Antwort

0

Sie sollten sie in separaten Dateien halten, ja.

Und in Ihrem Winkelmesser referenceConf.js (config mit starten Winkelmesser) Sie schreiben sollte:

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

In diesem Fall < Winkelmesser startet alle Dateien von dir "/ test/pages" mit Maske * Test.js (loginPageTest.js, homePageTest.js)

+0

Leider wusste ich noch nicht, wie man Tests in einer einzelnen Datei startet, ohne 'specs' in der Konfiguration zu ändern. Auch wenn Sie Tests in der IDE debuggen möchten, kann dieser Beitrag hilfreich sein: [Wie Debugger-Tests in Webstorm zu debuggen] (http://stackoverflow.com/questions/20137109/how-to-debug-angular-protractor-tests -in-WebStorm) –

+0

entdecken ich letzte Nacht, als ich dies umzusetzen versuchte, die Sie nicht Seite Objekte in den Spezifikationen wie diese enthalten können. Jede Datei wird unabhängig von den anderen ausgeführt. Ich baute ein System um den Bedarf des Knotens herum. – wlingke

+0

@wlingke Ich habe ein ähnliches Problem hier. Kannst du mir bitte zeigen, was du getan hast, um das Problem zu lösen? – Shimu

0

Ich habe Angst, dass es keine gemeinsamen Standards, wenn es um Tests mit Seitenobjekten kommt. Sie mehrere Vorschläge unter Winkelmesser Fragen finden können: https://github.com/angular/protractor/issues/401 und https://github.com/angular/protractor/issues/78

Für meine Bedürfnisse Ich habe sehr einfache Seite Objekte in meinem Open-Source-Projekt finden Sie unter: https://github.com/9ci/angle-grinder/pull/124

auch recht interessant Implementierung Sie in https://github.com/juliemr/ng-page-e2e/tree/master/test

finden können,
4

Haben Sie es mit Astrolabium versucht? Es ist eine PageObject-Implementierung oben auf dem Winkelmesser, die Ihre Struktur führen könnte: https://github.com/stuplum/astrolabe

Dort können Sie sehen, dass die empfohlene Struktur ein Seitenobjekt pro Datei ist.

Z. B .: 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' 
}); 

es macht das Schreiben von Testfällen und sogar Seitenobjekt sehr kompakt und lesbar.

Verwandte Themen