Test des modules
Le module de test est un framework de test. Combiné avec le module d'assertion, assert
divers cas de test peuvent être facilement écrits.
fibjs
L’introduction de modules dans test
nécessite souvent des premières test setup
opérations :
1
2var test = require('test');
test.setup();
Avant d'écrire des cas de test, vous devez généralement définir un module de test pour décrire le contenu du test.
- décrire
décrire est un conteneur pour tous les groupes de tests, similaire au concept d'une suite de tests, et est utilisé pour it
ancrer les tests dans une catégorie spécifique. décrire peut contenir plusieurs cas d'utilisation informatique ou d'autres sous-catégories représentées par une description imbriquée.
1describe(String name, Function block)
Paramètres d'appel : nom : Chaîne, définition du nom du module bloc : Fonction, code d'initialisation du module
- il
Représente un seul scénario de test, et chaque description ne doit tester qu'une seule situation pour garantir la fiabilité des résultats du test.
1it(String name, Function block)
Paramètres d'appel : nom : Chaîne, définir le nom du projet bloc : Fonction, tester le contenu
- xit&it.skip
Représente les cas de test ignorés.
1xit(String name, Function block)
Paramètres d'appel : nom : Chaîne, définir le nom du projet bloc : Fonction, tester le contenu
- oit & it.only
Indique que seul le scénario de test actuel sera exécuté et que les autres scénarios de test seront ignorés afin que le scénario de test actuel puisse être débogué séparément, ce qui est très pratique.
1
2oit(String name, Function block)
it.only(String name, Function block)
Paramètres d'appel : nom : Chaîne, définir le nom du projet bloc : Fonction, tester le contenu
- faire
Indique la nécessité d’améliorer encore le plan de cas de test.
1todo(String name, Function block)
Paramètres d'appel : nom : Chaîne, définir le nom du projet bloc : Fonction, tester le contenu
Lors de la rédaction de cas de test, il est courant d'utiliserassertModule d'assertion, vérifie le retour de la fonction. Comment l'utiliser:
1assert(condition, String message);
Parmi eux, le premier paramètre est la condition qui doit être affirmée et le deuxième paramètre est le message d'erreur.
objet
assert
Affirmez le module de test. Si la valeur du test est fausse, une erreur sera signalée. Le comportement de rapport d'erreur peut être défini pour continuer à s'exécuter ou générer une erreur.
1assert test.assert;
fonction statique
describe
Définir un module de test, qui peut être imbriqué
1
2static test.describe(String name,
Function block);
Paramètres d'appel :
- name: String, définit le nom du module
- block: Fonction, code d'initialisation du module
xdescribe
Définition du module pour suspendre les tests,test.setupVous pouvez ensuite utiliser décrire.skip pour appeler
1
2static test.xdescribe(String name,
Function block);
Paramètres d'appel :
- name: String, définit le nom du module
- block: Fonction, code d'initialisation du module
odescribe
définitions de modules pour des tests indépendants,test.setupVous pouvez ensuite utiliserscribe.only pour appeler
1
2static test.odescribe(String name,
Function block);
Paramètres d'appel :
- name: String, définit le nom du module
- block: Fonction, code d'initialisation du module
it
Définir un projet de test
1
2static test.it(String name,
Function block);
Paramètres d'appel :
- name: String, définit le nom du projet
- block: Fonction, contenu du test
xit
Définition du projet pour suspendre les tests,test.setupVous pouvez ensuite l'utiliser.skip pour appeler
1
2static test.xit(String name,
Function block);
Paramètres d'appel :
- name: String, définit le nom du projet
- block: Fonction, contenu du test
oit
Définition du projet pour des tests indépendants,test.setupVous pourrez ensuite l'utiliser uniquement pour appeler
1
2static test.oit(String name,
Function block);
Paramètres d'appel :
- name: String, définit le nom du projet
- block: Fonction, contenu du test
todo
définition du projet de plan,test.setupVous pouvez ensuite l'utiliser.todo pour appeler
1
2static test.todo(String name,
Function block);
Paramètres d'appel :
- name: String, définit le nom du projet
- block: Fonction, contenu du test
before
Définir l'événement d'entrée du module de test actuel
1static test.before(Function func);
Paramètres d'appel :
- func: Fonction, fonction événement
after
Définir l'événement de sortie du module de test actuel
1static test.after(Function func);
Paramètres d'appel :
- func: Fonction, fonction événement
beforeEach
Définir l'événement d'entrée du projet de test du module de test actuel
1static test.beforeEach(Function func);
Paramètres d'appel :
- func: Fonction, fonction événement
afterEach
Définir l'événement de sortie du projet de test du module de test actuel
1static test.afterEach(Function func);
Paramètres d'appel :
- func: Fonction, fonction événement
mustCall
Tester qu'une fonction doit être appelée un nombre de fois spécifié
1static Function test.mustCall(Function func);
Paramètres d'appel :
- func: Fonction, la fonction en cours de test
Résultats de retour :
- Function, renvoie la fonction enveloppée
mustNotCall
Tester qu'une fonction ne doit pas être appelée
1static Function test.mustNotCall(Function func);
Paramètres d'appel :
- func: Fonction, la fonction en cours de test
Résultats de retour :
- Function, renvoie la fonction enveloppée
Tester qu'une fonction ne doit pas être appelée
1static Function test.mustNotCall();
Résultats de retour :
- Function, renvoie la fonction enveloppée
run
Commencer à exécuter le module de test défini
1static Object test.run(Integer mode = console.ERROR);
Paramètres d'appel :
- mode: Entier, spécifie le mode de test. Lorsque ERREUR, les informations d'erreur du projet sont concentrées et affichées après le rapport. Lorsqu'elles sont inférieures à ERREUR, les informations de sortie sont affichées à tout moment. Lorsqu'elles sont supérieures à ERREUR, seul le rapport est affiché.
Résultats de retour :
- Object, renvoyer les résultats des tests
Une fois le test terminé, les résultats du test seront renvoyés sous la forme suivante :
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
Initialisez l'environnement de test du script actuel et copiez la méthode du module de test en tant que variable globale du script actuel
1static test.setup();
propriétés statiques
slow
Nombre entier, définissez et interrogez le seuil d'avertissement de test lent, en ms, la valeur par défaut est 75
1static Integer test.slow;