Uso básico do Jest
Instale e execute o Jest
Jest pode ser instalado via npm para desenvolvimento:
# 指定安装 jest v23.6,不添加 @23.6.0 会安装最新版本
$ npm install --save-dev [email protected]
Observe que ele é usado aqui --save-dev
, o que significa que o pacote de dependências só será baixado no ambiente de desenvolvimento, package.json
e devDependencies
também vou querer atualizá-lo:
{
// 省略其他
"devDependencies": {
"jest": "^23.6.0"
}
}
Depois que as dependências forem instaladas com sucesso, você poderá usar npx jest
para executar os arquivos de teste.
Se não houver arquivo de teste, um erro será relatado.
Executar o arquivo Jest diretamente com npm requer configuração package.json
em :
{
// 省略其他
"scripts": {
"test": "jest"
}
}
Escreva o primeiro arquivo de teste
O formato de arquivo reconhecido pelo Jest é: 文件名.test.js
, como: helloWorld.test.js
:
const greeting = () => 'hello world';
describe('greeting()', () => {
it('greeting', () => {
expect(greeting()).toBe('hello world');
});
});
dentro:
describe()
declara que este é um teste côncavo, um conjunto de testesit()
declara um testeassertion
criou uma afirmaçãotoBe()
É determinar se o valor de retorno é igual à asserção
resultado da operação:
$ npm test
...
PASS ./greeting.test.js
greeting()
✓ greeting (3ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 0.83s
Ran all test suites.
Executar testes e cobertura de teste automaticamente
A execução de testes pode ser usada --watchAll
como um sinalizador:
# 加上关键字全局搜索
$ npx jest --watchAll
Nesse ponto, o npm monitorará todas as alterações de arquivo, incluindo arquivos de implementação e arquivos de teste, e executará novamente o teste.
Para habilitar a cobertura de teste, você pode usar o --coverage
sinalizador , como:
$ npm run test -- --coverage --coverageReporters=text
PASS ./index.test.js
greeting()
✓ returns "greeting" for greeting (3ms)
----------|----------|----------|----------|----------|-------------------|
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s |
----------|----------|----------|----------|----------|-------------------|
All files | 75 | 50 | 100 | 66.67 | |
index.js | 75 | 50 | 100 | 66.67 | 3 |
----------|----------|----------|----------|----------|-------------------|
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 0.121s, estimated 1s
Ran all test suites.
execute vários testes
describe()
Basta adicionar várias it()
declarações ao escopo.
const greeting = () => 'hello world';
describe('greeting()', () => {
it('greeting', () => {
expect(greeting()).toBe('hello world');
});
});