Proba do módulo
O módulo de proba é un marco de proba. Combinado co módulo de afirmación, assert
pódense escribir facilmente varios casos de proba.
fibjs
A introdución de módulos en test
moitas veces require as primeiras test setup
operacións:
1
2var test = require('test');
test.setup();
Antes de escribir casos de proba, normalmente cómpre definir un módulo de proba para describir o contido da proba.
- describir
describe é un contenedor para todos os grupos de probas, similar ao concepto dunha suite de probas, e úsase para it
ancorar probas nunha categoría específica. describe pode conter varios casos de uso ou outras subcategorías representadas por describe aniñadas.
1describe(String name, Function block)
Parámetros de chamada: nome: Cadena, definir nome do módulo bloque: Función, código de inicialización do módulo
- iso
Representa un único caso de proba e cada descrición só debe probar unha única situación para garantir a fiabilidade dos resultados da proba.
1it(String name, Function block)
Parámetros de chamada: nome: cadea, definir nome do proxecto bloque: función, contido de proba
- xit&it.skip
Representa casos de proba omitidos.
1xit(String name, Function block)
Parámetros de chamada: nome: cadea, definir nome do proxecto bloque: función, contido de proba
- oit & it.só
Indica que só se executará o caso de proba actual e que se ignorarán outros casos de proba para que o caso de proba actual se poida depurar por separado, o que é moi práctico.
1
2oit(String name, Function block)
it.only(String name, Function block)
Parámetros de chamada: nome: cadea, definir nome do proxecto bloque: función, contido de proba
- facer
Indica a necesidade de mellorar aínda máis o plan de casos de proba.
1todo(String name, Function block)
Parámetros de chamada: nome: cadea, definir nome do proxecto bloque: función, contido de proba
Ao escribir casos de proba, é habitual usarassertMódulo de aserción, comproba o retorno da función. Como usalo:
1assert(condition, String message);
Entre eles, o primeiro parámetro é a condición que se debe afirmar e o segundo parámetro é a mensaxe de erro.
obxecto
assert
Afirma o módulo de proba. Se o valor da proba é falso, informarase dun erro. Pódese configurar o comportamento de informes de erros para que siga executando ou se produza un erro.
1assert test.assert;
función estática
describe
Defina un módulo de proba, que se pode aniñar
1
2static test.describe(String name,
Function block);
Parámetros de chamada:
- name: String, define o nome do módulo
- block: Función, código de inicialización do módulo
xdescribe
Definición de módulo para pausar a proba,test.setupDespois podes usar describe.skip para chamar
1
2static test.xdescribe(String name,
Function block);
Parámetros de chamada:
- name: String, define o nome do módulo
- block: Función, código de inicialización do módulo
odescribe
definicións de módulos para probas independentes,test.setupDespois podes usar describe.only para chamar
1
2static test.odescribe(String name,
Function block);
Parámetros de chamada:
- name: String, define o nome do módulo
- block: Función, código de inicialización do módulo
it
Definir un proxecto de proba
1
2static test.it(String name,
Function block);
Parámetros de chamada:
- name: Cadea, define o nome do proxecto
- block: Función, contido da proba
xit
Definición do proxecto para pausar as probas,test.setupDespois podes usalo.salta para chamar
1
2static test.xit(String name,
Function block);
Parámetros de chamada:
- name: Cadea, define o nome do proxecto
- block: Función, contido da proba
oit
Definición do proxecto para probas independentes,test.setupDespois podes usalo.só para chamar
1
2static test.oit(String name,
Function block);
Parámetros de chamada:
- name: Cadea, define o nome do proxecto
- block: Función, contido da proba
todo
definición do proxecto do plan,test.setupDespois podes usalo.todo para chamar
1
2static test.todo(String name,
Function block);
Parámetros de chamada:
- name: Cadea, define o nome do proxecto
- block: Función, contido da proba
before
Defina o evento de entrada do módulo de proba actual
1static test.before(Function func);
Parámetros de chamada:
- func: Función, función de evento
after
Defina o evento de saída do módulo de proba actual
1static test.after(Function func);
Parámetros de chamada:
- func: Función, función de evento
beforeEach
Defina o evento de entrada do proxecto de proba do módulo de proba actual
1static test.beforeEach(Function func);
Parámetros de chamada:
- func: Función, función de evento
afterEach
Defina o evento de saída do proxecto de proba do módulo de proba actual
1static test.afterEach(Function func);
Parámetros de chamada:
- func: Función, función de evento
mustCall
Proba que unha función debe chamarse un número determinado de veces
1static Function test.mustCall(Function func);
Parámetros de chamada:
- func: Función, a función que se está a probar
Resultados de devolución:
- Function, devolve a función envoltura
mustNotCall
Proba que non se debe chamar unha función
1static Function test.mustNotCall(Function func);
Parámetros de chamada:
- func: Función, a función que se está a probar
Resultados de devolución:
- Function, devolve a función envoltura
Proba que non se debe chamar unha función
1static Function test.mustNotCall();
Resultados de devolución:
- Function, devolve a función envoltura
run
Comezar a executar o módulo de proba definido
1static Object test.run(Integer mode = console.ERROR);
Parámetros de chamada:
- mode: Número enteiro, especifica o modo de proba. Cando ERRO, a información do erro do proxecto concéntrase e móstrase despois do informe. Cando é inferior a ERRO, a información de saída móstrase en calquera momento. Cando é superior a ERRO, só se mostra o informe. mostrado.
Resultados de devolución:
- Object, devolver os resultados da proba
Despois de completar a proba, os resultados da proba serán devoltos no seguinte formulario:
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
Inicialice o ambiente de proba do script actual e copie o método do módulo de proba como unha variable global do script actual
1static test.setup();
propiedades estáticas
slow
Enteiro, establece e consulta o limiar de aviso de proba lenta, en ms, o valor predeterminado é 75
1static Integer test.slow;