Winkelmesser Jasmin beschreiben verschachtelte Blöcke innerhalb eines block
Zunächst den code unten scheint zu funktionieren. Allerdings habe ich noch nicht gesehen, dass jemand dies tun, so Frage ich mich, ob dies überhaupt legitim ist und wenn ich bin fehlt unvorhergesehene Nachteile.
Kontext ist, dass ich Schreibe eine E2E test mit Winkelmesser verwendet Jasmin-Stil beschreiben Sie/es blockiert. Mein Ziel ist es, eine Seite zu laden, und führen Sie eine Reihe von it
tests Blöcke ohne reload, die Seite jedes mal (weil zeitaufwendig).
Dem Konstrukt, das 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
});
})
});
});
Erkenne ich eine alternative, ist nur dies:
describe("Homepage", function () {
beforeEach(function () {
browser.get("/"); //goes to homepage
});
it('elements', function () {
//run stuff 1
//run stuff 2
});
});
Aber das Problem ist, dass ich nicht trennen können, die tests und Sie am Ende mit einem großen it
block. Ich will irgendwie vermeiden, das Thema läuft beforeEach jedes mal, aber immer noch in der Lage sein einen schön getrennt einstellen, test-Blöcke.
Übrigens, ich habe auch so probiert:
describe("Homepage", function () {
browser.get("/"); //goes to homepage
it('elements', function () {
//run stuff 1
//run stuff 2
});
});
außer diese funktioniert nicht, wenn Sie mehrere Angaben, wie diese. Die browser.get() laufen alle einer nach dem anderen, bevor die tests laufen zu bekommen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Brechen die Behauptungen in kleinere blockiert es ist definitiv eine gute Idee.
Jasmin nicht appead eine Globale setup-Funktion, die nur einmal ausgeführt wird.
So können Sie vielleicht trick der beforeEach-block in nur läuft das setup einmal:
browser.get()
Sie können auch überprüfen Sie die Seite, du bist mitbrowser.getCurrentUrl()
und überprüfen Sie die aktuelle Seite, bevor Sie "bekommen" es.Jasmine2 hat beforeAll() und schließlich() läuft einmal für die gesamte suite.