Moduletest
De testmodule is een testframework.In combinatie met de assertiemodule assert
kunnen op eenvoudige wijze diverse testgevallen worden geschreven.
fibjs
Het introduceren van modules test
vereist vaak eerste test setup
handelingen:
1
2var test = require('test');
test.setup();
Voordat u testgevallen schrijft, moet u meestal een testmodule definiëren om de testinhoud te beschrijven.
- beschrijven
beschrijven is een container voor alle testgroepen, vergelijkbaar met het concept van een testsuite, en wordt gebruikt om it
tests onder een specifieke categorie te verankeren. beschrijven kan meerdere it-use-cases of andere subcategorieën bevatten die worden weergegeven door geneste beschrijven.
1describe(String name, Function block)
Oproepparameters: naam: String, definieer modulenaamblok: Functie, module-initialisatiecode
- Het
Vertegenwoordigt één testgeval en elke beschrijving mag slechts één situatie testen om de betrouwbaarheid van de testresultaten te garanderen.
1it(String name, Function block)
Parameters oproepen: naam: String, projectnaamblok definiëren: Functie, inhoud testen
- xit&it.skip
Vertegenwoordigt overgeslagen testgevallen.
1xit(String name, Function block)
Parameters oproepen: naam: String, projectnaamblok definiëren: Functie, inhoud testen
- oit & it.only
Geeft aan dat alleen de huidige testcase wordt uitgevoerd en dat andere testcases worden genegeerd, zodat de huidige testcase afzonderlijk kan worden opgespoord, wat erg praktisch is.
1
2oit(String name, Function block)
it.only(String name, Function block)
Parameters oproepen: naam: String, projectnaamblok definiëren: Functie, inhoud testen
- Te doen
Geeft de noodzaak aan om het testcaseplan verder te verbeteren.
1todo(String name, Function block)
Parameters oproepen: naam: String, projectnaamblok definiëren: Functie, inhoud testen
Bij het schrijven van testgevallen is het gebruikelijk om gebruik te maken vanassertAssertiemodule, controleert de terugkeer van de functie. Hoe te gebruiken:
1assert(condition, String message);
Daarvan is de eerste parameter de voorwaarde die moet worden vervuld, en de tweede parameter is de foutmelding.
voorwerp
assert
Bevestig de testmodule. Als de testwaarde onwaar is, wordt er een fout gerapporteerd. Het foutrapportagegedrag kan worden ingesteld om door te gaan of een fout te genereren.
1assert test.assert;
statische functie
describe
Definieer een testmodule, die genest kan worden
1
2static test.describe(String name,
Function block);
Oproepparameters:
- name: String, definieert de modulenaam
- block: Functie, module-initialisatiecode
xdescribe
Moduledefinitie om het testen te pauzeren,test.setupU kunt dan beschrijven.skip gebruiken om te bellen
1
2static test.xdescribe(String name,
Function block);
Oproepparameters:
- name: String, definieert de modulenaam
- block: Functie, module-initialisatiecode
odescribe
moduledefinities voor onafhankelijk testen,test.setupU kunt dan met beschrijven.only bellen
1
2static test.odescribe(String name,
Function block);
Oproepparameters:
- name: String, definieert de modulenaam
- block: Functie, module-initialisatiecode
it
Definieer een testproject
1
2static test.it(String name,
Function block);
Oproepparameters:
- name: String, definieert de projectnaam
- block: Functie, testinhoud
xit
Projectdefinitie om het testen te pauzeren,test.setupU kunt het vervolgens gebruiken om te bellen
1
2static test.xit(String name,
Function block);
Oproepparameters:
- name: String, definieert de projectnaam
- block: Functie, testinhoud
oit
Projectdefinitie voor onafhankelijk testen,test.setupU kunt er dan alleen mee bellen
1
2static test.oit(String name,
Function block);
Oproepparameters:
- name: String, definieert de projectnaam
- block: Functie, testinhoud
todo
plan projectdefinitie,test.setupJe kunt it.todo dan gebruiken om te bellen
1
2static test.todo(String name,
Function block);
Oproepparameters:
- name: String, definieert de projectnaam
- block: Functie, testinhoud
before
Definieer de huidige testmodule-invoergebeurtenis
1static test.before(Function func);
Oproepparameters:
- func: Functie, gebeurtenisfunctie
after
Definieer de exit-gebeurtenis van de huidige testmodule
1static test.after(Function func);
Oproepparameters:
- func: Functie, gebeurtenisfunctie
beforeEach
Definieer de huidige testmodule-invoergebeurtenis
1static test.beforeEach(Function func);
Oproepparameters:
- func: Functie, gebeurtenisfunctie
afterEach
Definieer de huidige exit-gebeurtenis van het testmoduletestproject
1static test.afterEach(Function func);
Oproepparameters:
- func: Functie, gebeurtenisfunctie
mustCall
Test of een functie een bepaald aantal keren moet worden aangeroepen
1static Function test.mustCall(Function func);
Oproepparameters:
- func: Functie, de functie die wordt getest
Resultaten retourneren:
- Function, retourneert de ingepakte functie
mustNotCall
Test of een functie niet mag worden aangeroepen
1static Function test.mustNotCall(Function func);
Oproepparameters:
- func: Functie, de functie die wordt getest
Resultaten retourneren:
- Function, retourneert de ingepakte functie
Test of een functie niet mag worden aangeroepen
1static Function test.mustNotCall();
Resultaten retourneren:
- Function, retourneert de ingepakte functie
run
Begin met het uitvoeren van de gedefinieerde testmodule
1static Object test.run(Integer mode = console.ERROR);
Oproepparameters:
- mode: Geheel getal, specificeert de testmodus. Wanneer ERROR, wordt de projectfoutinformatie geconcentreerd en weergegeven na het rapport. Wanneer deze lager is dan ERROR, wordt de uitvoerinformatie op elk moment weergegeven. Wanneer deze hoger is dan ERROR, wordt alleen het rapport weergegeven. weergegeven.
Resultaten retourneren:
- Object, testresultaten retourneren
Nadat de testrun is voltooid, worden de testresultaten in de volgende vorm geretourneerd:
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
Initialiseer de testomgeving van het huidige script en kopieer de testmodulemethode als een globale variabele van het huidige script
1static test.setup();
statische eigenschappen
slow
Integer, stel de waarschuwingsdrempel voor de langzame test in en vraag deze op, in ms, de standaardwaarde is 75
1static Integer test.slow;