Modultest
Das Testmodul ist ein Testframework. In Kombination mit dem Assertionsmodul assert
können verschiedene Testfälle einfach geschrieben werden.
fibjs
Die Einführung von Modulen test
erfordert häufig erste test setup
Schritte:
1
2var test = require('test');
test.setup();
Bevor Sie Testfälle schreiben, müssen Sie normalerweise ein Testmodul definieren, um den Testinhalt zu beschreiben.
- beschreiben
„beschreiben“ ist ein Container für alle Testgruppen, ähnlich dem Konzept einer Testsuite, und wird verwendet, um it
Tests unter einer bestimmten Kategorie zu verankern. „beschreiben“ kann mehrere IT-Anwendungsfälle oder andere Unterkategorien enthalten, die durch verschachtelte „beschreiben“ dargestellt werden.
1describe(String name, Function block)
Aufrufparameter: Name: String, Modulnamen definieren, Block: Funktion, Modulinitialisierungscode
- Es
Stellt einen einzelnen Testfall dar und jede Beschreibung sollte nur eine einzige Situation testen, um die Zuverlässigkeit der Testergebnisse sicherzustellen.
1it(String name, Function block)
Aufrufparameter: Name: String, Projektnamen definieren, Block: Funktion, Testinhalt
- xit&it.skip
Stellt übersprungene Testfälle dar.
1xit(String name, Function block)
Aufrufparameter: Name: String, Projektnamen definieren, Block: Funktion, Testinhalt
- oit & it.only
Gibt an, dass nur der aktuelle Testfall ausgeführt wird und andere Testfälle ignoriert werden, sodass der aktuelle Testfall separat debuggt werden kann, was sehr praktisch ist.
1
2oit(String name, Function block)
it.only(String name, Function block)
Aufrufparameter: Name: String, Projektnamen definieren, Block: Funktion, Testinhalt
- machen
Weist darauf hin, dass der Testfallplan weiter verbessert werden muss.
1todo(String name, Function block)
Aufrufparameter: Name: String, Projektnamen definieren, Block: Funktion, Testinhalt
Beim Schreiben von Testfällen wird es häufig verwendetassertAssertionsmodul, prüft die Rückgabe der Funktion. So verwenden Sie es:
1assert(condition, String message);
Dabei ist der erste Parameter die Bedingung, die bestätigt werden muss, und der zweite Parameter ist die Fehlermeldung.
Objekt
assert
Aktivieren Sie das Testmodul. Wenn der Testwert falsch ist, wird ein Fehler gemeldet. Das Verhalten der Fehlerberichterstattung kann so eingestellt werden, dass die Ausführung fortgesetzt wird oder ein Fehler ausgegeben wird.
1assert test.assert;
statische Funktion
describe
Definieren Sie ein Testmodul, das verschachtelt werden kann
1
2static test.describe(String name,
Function block);
Aufrufparameter:
- name: String, definiert den Modulnamen
- block: Funktion, Modulinitialisierungscode
xdescribe
Moduldefinition zum Anhalten des Tests,test.setupAnschließend können Sie zum Aufrufen beschreiben.skip verwenden
1
2static test.xdescribe(String name,
Function block);
Aufrufparameter:
- name: String, definiert den Modulnamen
- block: Funktion, Modulinitialisierungscode
odescribe
Moduldefinitionen für unabhängige Tests,test.setupSie können dann beschreiben.only zum Aufrufen verwenden
1
2static test.odescribe(String name,
Function block);
Aufrufparameter:
- name: String, definiert den Modulnamen
- block: Funktion, Modulinitialisierungscode
it
Definieren Sie ein Testprojekt
1
2static test.it(String name,
Function block);
Aufrufparameter:
- name: String, definiert den Projektnamen
- block: Funktion, Testinhalt
xit
Projektdefinition zur Testpause,test.setupAnschließend können Sie mit it.skip anrufen
1
2static test.xit(String name,
Function block);
Aufrufparameter:
- name: String, definiert den Projektnamen
- block: Funktion, Testinhalt
oit
Projektdefinition für unabhängige Tests,test.setupSie können es dann nur zum Anrufen verwenden
1
2static test.oit(String name,
Function block);
Aufrufparameter:
- name: String, definiert den Projektnamen
- block: Funktion, Testinhalt
todo
Projektdefinition planen,test.setupSie können dann it.todo zum Aufrufen verwenden
1
2static test.todo(String name,
Function block);
Aufrufparameter:
- name: String, definiert den Projektnamen
- block: Funktion, Testinhalt
before
Definieren Sie das aktuelle Testmodul-Eintrittsereignis
1static test.before(Function func);
Aufrufparameter:
- func: Funktion, Ereignisfunktion
after
Definieren Sie das Exit-Ereignis des aktuellen Testmoduls
1static test.after(Function func);
Aufrufparameter:
- func: Funktion, Ereignisfunktion
beforeEach
Definieren Sie das aktuelle Testmodul-Testprojekteintrittsereignis
1static test.beforeEach(Function func);
Aufrufparameter:
- func: Funktion, Ereignisfunktion
afterEach
Definieren Sie das aktuelle Testmodul-Testprojekt-Exit-Ereignis
1static test.afterEach(Function func);
Aufrufparameter:
- func: Funktion, Ereignisfunktion
mustCall
Testen Sie, ob eine Funktion eine bestimmte Anzahl von Malen aufgerufen werden muss
1static Function test.mustCall(Function func);
Aufrufparameter:
- func: Funktion, die getestete Funktion
Rückgabeergebnisse:
- Function, gibt die umschlossene Funktion zurück
mustNotCall
Testen Sie, dass eine Funktion nicht aufgerufen werden darf
1static Function test.mustNotCall(Function func);
Aufrufparameter:
- func: Funktion, die getestete Funktion
Rückgabeergebnisse:
- Function, gibt die umschlossene Funktion zurück
Testen Sie, dass eine Funktion nicht aufgerufen werden darf
1static Function test.mustNotCall();
Rückgabeergebnisse:
- Function, gibt die umschlossene Funktion zurück
run
Beginnen Sie mit der Ausführung des definierten Testmoduls
1static Object test.run(Integer mode = console.ERROR);
Aufrufparameter:
- mode: Ganzzahl, gibt den Testmodus an. Bei ERROR werden die Projektfehlerinformationen konzentriert und nach dem Bericht angezeigt. Wenn er niedriger als ERROR ist, werden die Ausgabeinformationen jederzeit angezeigt. Wenn er höher als ERROR ist, wird nur der Bericht angezeigt angezeigt.
Rückgabeergebnisse:
- Object, Testergebnisse zurückgeben
Nach Abschluss des Testlaufs werden die Testergebnisse in folgender Form zurückgegeben:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33{
"total": 2, // number of total test cases
"pass": 2, // number of passed test cases
"fail": 0, // number of failed test cases
"skip": 0, // number of skipped test cases
"todo": 0, // number of todo test cases
"time": 0.000000, // time elapsed in seconds
"cases": [ // details of test cases
{
"name": "test", // name of test case
"time": 0.000000, // time elapsed in seconds
"result": true, // result of test case
"error": null // message of error if test case failed
},
{
"name": "sub cases", // name of sub test case
"total": 1, // number of total test cases
"pass": 1, // number of passed test cases
"fail": 0, // number of failed test cases
"skip": 0, // number of skipped test cases
"todo": 0, // number of todo test cases
"time": 0.000000, // time elapsed in seconds
"cases": [ // details of test cases
{
"name": "test", // name of test case
"time": 0.000000, // time elapsed in seconds
"result": true, // result of test case
"error": null // message of error if test case failed
}
]
}
]
}
setup
Initialisieren Sie die Testumgebung des aktuellen Skripts und kopieren Sie die Testmodulmethode als globale Variable des aktuellen Skripts
1static test.setup();
statische Eigenschaften
slow
Ganzzahl, legen Sie den Warnschwellenwert für langsame Tests fest und fragen Sie ihn ab. In ms ist der Standardwert 75
1static Integer test.slow;