Es gibt einige wesentliche Unterschiede zwischen beforeAll
Block-und Plain-Code im Bereich describe
Funktion.
beforeAll
Setup soll mit afterAll
Teardown gekoppelt werden.
Fehler in before*
Blöcke sind nicht kritisch und verhindern nicht, dass die Liste der Spezifikationen ausgefüllt wird und Spezifikationen ausgeführt werden. Ein Fehler in describe
Block führt zu einer leeren Liste von Spezifikationen.
before*
und it
Blöcke haben this
as the context of current spec, die als empfohlene Möglichkeit verwendet werden können, Daten zwischen Blöcken zu teilen. Es ist im Allgemeinen besser als einfache Variablen aus dem übergeordneten Bereich, da kein Risiko besteht, Tests auf diese Weise zu verseuchen. describe
Funktion hat diesen Kontext nicht. Dieser Ansatz ist jedoch nicht mit ES6-Pfeilfunktionen kompatibel.
Es kann Jasmin-Helfer geben, die in Verbindung mit before*
und it
Blöcken arbeiten sollen, z. in Winkelprüfung:
describe('...',() => {
const foo = 'test'; // not let
...
});
Sie können:
Wenn es eine Konstante ist, die für den gesamten Block definiert werden soll, dann kann es sicherlich ohne
beforeAll
definiert werden. Wenn Sie von außerhalb der Funktion 'beforeAll' auf' foo' zugreifen wollen, müssen Sie dies tun. 'beforeAll' steht für Dinge, die Sie instanziieren möchten, bevor einer der Tests ausgeführt wird. –