Tengo dos pruebas en mi grupo de prueba. Uno lo usa, el otro usa prueba, y parecen estar funcionando de manera muy similar. ¿Cuál es la diferencia entre ellos?
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);
})
});
});
ACTUALIZAR:
Parece que test
está en la API oficial de Jest , pero it
no lo está.
javascript
unit-testing
jestjs
C.Lee
fuente
fuente
it
podría estar allí para familiarizarse y migrar desde otros marcos.test
está bajo el aliasit
.Respuestas:
En los documentos dice aquí :
it
es un alias detest
. Entonces son exactamente lo mismo.fuente
Hacen lo mismo, pero sus nombres son diferentes y con eso su interacción con el nombre de la prueba.
prueba
Lo que escribes:
Lo que obtienes si algo falla:
eso
Lo que escribes:
Lo que obtienes si algo falla:
Entonces se trata de legibilidad, no de funcionalidad. En mi opinión,
it
realmente tiene sentido cuando se trata de leer el resultado de una prueba reprobatoria que no ha escrito usted mismo. Ayuda a comprender más rápidamente de qué se trata el examen.fuente
it('does this thing', () => {})
lugar deit('should do this thing', () => {}
ser más cortostest('thing should do x')
puede preferirse sobreit('Should do X')
comoit
es a menudo vago.Como las otras respuestas han aclarado, hacen lo mismo.
Creo que los dos se ofrecen para permitir 1) pruebas de estilo " RSpec " como:
o 2) pruebas de estilo " xUnit " como:
Documentos:
fuente
como dice el jest docs, son lo mismo: https://jestjs.io/docs/en/api#testname-fn-timeout
y describe es solo para cuando prefiere que sus pruebas se organicen en grupos: https://jestjs.io/docs/en/api#describename-fn
describe(name, fn)
crea un bloque que agrupa varias pruebas relacionadas. Por ejemplo, si tiene un objeto myBeverage que se supone que es delicioso pero no ácido, puede probarlo con:Esto no es obligatorio: puede escribir los bloques de prueba directamente en el nivel superior. Pero esto puede ser útil si prefiere que sus pruebas se organicen en grupos.
fuente
Jest no ha mencionado por qué tienen dos versiones para exactamente la misma funcionalidad. Supongo que es solo por convención. test for unit lo prueba para pruebas de integración.
fuente
Ellos son la misma cosa. Estoy usando TypeScript como lenguaje de programación, y cuando busco en el archivo de definición del código fuente del paquete jest de /@types/jest/index.d.ts, puedo ver los siguientes códigos. Obviamente, hay muchos nombres diferentes de 'prueba', puede usar cualquiera de ellos.
fuente
it
ytest
son lo mismo. Simplemente significa que su tipo es el mismo. No lo creobeforeAll
yafterAll
son lo mismo a pesar de que su tipo es el mismo.xit and xtest
se saltea las pruebas,it, fit, test
son para ejecutar pruebas. Gracias por tu respuesta.