Zunächst scheint der folgende Code zu funktionieren. Ich habe jedoch noch niemanden gesehen, der das macht, also frage ich mich, ob das überhaupt legitim ist und ob ich unvorhergesehene Nachteile verpasse.Winkelmesser Jasmine beschreiben Blöcke verschachtelt in einem It-Block
Der Kontext ist, dass ich einen E2E-Test mit Winkelmesser schreibe, der Jasmine-style-describe/it-Blöcke verwendet. Mein Ziel ist es, eine Seite zu laden und eine Reihe von it
Testblöcken auszuführen, ohne diese Seite jedes Mal neu zu laden (weil es zeitaufwendig ist).
Das Konstrukt ich habe, ist:
describe("Homepage", function() {
beforeEach(function() {
browser.get("/"); //loads the page
});
it('elements', function() {
describe('test group', function() {
it('test 1', function() {
//run stuff 1
});
it('test2', function() {
//run stuff 2
});
})
});
});
Ich weiß, eine Alternative, dies zu tun einfach ist:
istdescribe("Homepage", function() {
beforeEach(function() {
browser.get("/"); //goes to homepage
});
it('elements', function() {
//run stuff 1
//run stuff 2
});
});
Aber das Problem, dass ich nicht die Tests trennen kann und Sie am Ende mit einem großen it
Block. Ich möchte irgendwie das Problem vermeiden, vor jedem einzelnen Mal zu laufen, aber immer noch in der Lage zu sein, eine gut getrennte Menge von Testblöcken zu haben.
By the way, ich habe dies auch versucht:
describe("Homepage", function() {
browser.get("/"); //goes to homepage
it('elements', function() {
//run stuff 1
//run stuff 2
});
});
außer dies nicht funktioniert, wenn Sie dies mehrere Spezifikationen wie haben. Die browser.get() wird nacheinander ausgeführt, bevor die Tests ausgeführt werden.
Das ist eine gute Idee. Lass mich ein oder zwei Tage warten, bevor ich akzeptiere, um zu sehen, ob jemand andere Ideen hat. – wlingke
Ich wollte auch für dieses spezielle Szenario von 'browser.get()' hinzufügen, Sie können auch die Seite, auf der Sie sich befinden, mit 'browser.getCurrentUrl()' überprüfen und die aktuelle Seite überprüfen, bevor Sie sie "holen". – wlingke