Eu tenho dois testes no meu grupo de teste. Um usa, o outro usa teste, e eles parecem estar funcionando de maneira muito semelhante. Qual a diferença entre eles?
describe('updateAll', () => {
it('no force', () => {
return updateAll(TableName, ["fileName"], {compandId: "test"})
.then(updatedItems => {
let undefinedCount = 0;
for (let item of updatedItems) {
undefinedCount += item === undefined ? 1 : 0;
}
// console.log("result", result);
expect(undefinedCount).toBe(updatedItems.length);
})
});
test('force update', () => {
return updateAll(TableName, ["fileName"], {compandId: "test"}, true)
.then(updatedItems => {
let undefinedCount = 0;
for (let item of updatedItems) {
undefinedCount += item === undefined ? 1 : 0;
}
// console.log("result", result);
expect(undefinedCount).toBe(0);
})
});
});
ATUALIZAR:
Parece que test
está na API oficial do Jest , mas it
não está.
javascript
unit-testing
jestjs
C.Lee
fonte
fonte
it
pode estar lá apenas para familiaridade e migração de outras estruturas.test
está sob o pseudônimoit
.Respostas:
Nos documentos que diz aqui :
it
é um apelido detest
. Então eles são exatamente iguais.fonte
Eles fazem a mesma coisa, mas seus nomes são diferentes e com isso sua interação com o nome do teste.
teste
O que você escreve:
O que você ganha se algo falhar:
isto
O que você escreve:
O que você ganha se algo falhar:
Portanto, trata-se de legibilidade, não de funcionalidade. Na minha opinião,
it
realmente faz sentido ler o resultado de um teste que você não escreveu. Isso ajuda a entender mais rapidamente do que trata o teste.fonte
it('does this thing', () => {})
em vez deit('should do this thing', () => {}
como seu mais curtotest('thing should do x')
pode ser preferido em relação aoit('Should do X')
queit
geralmente é vago.Como as outras respostas esclareceram, elas fazem a mesma coisa.
Eu acredito que os dois são oferecidos para permitir 1) testes no estilo " RSpec ", como:
ou 2) testes de estilo " xUnit ", como:
Documentos:
fonte
como diz o jest docs, eles são os mesmos: https://jestjs.io/docs/en/api#testname-fn-timeout
e descrever é apenas para quando você prefere que seus testes sejam organizados em grupos: https://jestjs.io/docs/en/api#describename-fn
describe(name, fn)
cria um bloco que agrupa vários testes relacionados. Por exemplo, se você tiver um objeto myBeverage que deve ser delicioso, mas não azedo, poderá testá-lo com:Isso não é necessário - você pode escrever os blocos de teste diretamente no nível superior. Mas isso pode ser útil se você preferir que seus testes sejam organizados em grupos.
fonte
Jest não mencionou por que eles têm duas versões para a mesma funcionalidade exata. Meu palpite é que é apenas por convenção. teste para testes unitários para testes de integração.
fonte
Eles são a mesma coisa. Estou usando o TypeScript como a linguagem de programação e, quando olho para o arquivo de definição do código-fonte do pacote jest em /@types/jest/index.d.ts, vejo os seguintes códigos. Obviamente, existem muitos nomes diferentes de 'teste', você pode usar qualquer um deles.
fonte
it
etest
é a mesma coisa. Significa apenas que o tipo deles é o mesmo. Eu não acho issobeforeAll
eafterAll
são a mesma coisa, embora seu tipo seja o mesmo.xit and xtest
pula os testes,it, fit, test
são para executar testes. Obrigado pela sua resposta.