Truthness / Verdadero
Clase 9 de 25 • Curso de JavaScript Testing con Jest 2019
Contenido del curso
Clase 9 de 25 • Curso de JavaScript Testing con Jest 2019
Contenido del curso
Antonio Madrid
Angelo Zambrano
Rodrigo Reyes
Jesús David Bossa
Oscar Barajas Tavares
Fabián Veliz
Jonathan Pérez Rodríguez
Andres Felipe Jara Nunez
Erick Eduardo Bolaños Rubio
Platzi Team
Daniel Páez
Miguel Angel Reyes Moreno
Usuario anónimo
Daniel Páez
Yazmin Lizeth Nava Cisneros
Erik Elyager
Francisco J G Caballero
Cristian Caballero
Victor Ignacio Casas Cabezas
Juan Esteban Galvis
Edgar Lopez Arroyo
Wilmion Navarrete
Funciones comparativas vistas hasta el momento:
.toBe() .toBeGreaterThan() .toBeGreaterThanOrEqual() .toBeLessThan() .toBeLessThanOrEqual() .toBeCloseTo() .toEqual()
.toBeNull() .toBeTruthy() .toBeFalsy() .toBeUndefined()
.not.toBe() .not.toBeGreaterThan() .not.toBeGreaterThanOrEqual() .not.toBeLessThan() .not.toBeLessThanOrEqual() .not.toBeCloseTo() .not.toEqual()
.not.toBeNull() .not.toBeTruthy() .not.toBeFalsy() .not.toBeUndefined()
Excelente aporte!
niiiiiiiice
Asi tambien es bonito no?
import { isNull, isFalse, isUndefined, isTrue } from '../true'
Si, es una forma de hacer import de las funciones.
Quedaría más bonito, en mi opinión, ordenando alfabéticamente los módulos a importar.
describe("Thruthy", () => { test("true", () => { expect(true).toBeTruthy(); }); test("{}", () => { expect({}).toBeTruthy(); }); test("5", () => { expect(5).toBeTruthy(); }); test("String", () => { expect("String").toBeTruthy(); }); test("Infinity", () => { expect(Infinity).toBeTruthy(); }); }); describe("Falsy", () => { test("False", () => { expect(false).toBeFalsy(); }); test("Null", () => { expect(null).toBeFalsy(); }); test("0", () => { expect(0).toBeFalsy(); }); test("Empty String '' ", () => { expect("").toBeFalsy(); }); test("NaN", () => { expect(NaN).toBeFalsy(); }); test("Undefined", () => { expect(undefined).toBeFalsy(); }); });```
Muy bueno el curso, pero creo que hay falencias con el idioma Inglés, la palabra Undefined se pronuncia andiFAIN (en un contesto en español) , null se pronuncia Noll y la extensión JS se pronuncia YEY ES. Es solo una observación porque muchas veces he hablado con nativos americanos en contextos tecnológicos y ellos se pueden confundir muy fácilmente por pronunciaciones.
Excelente curso.
En mi opinión la pronunciación del profesor es de las mejores que he encontrado en Platzi (obviando la escuela de inglés que no he probado). Trabajando en un contexto internacional con personas de diferentes países que tienen diferentes acentos, la verdad los pequeños detalles de pronunciación son irrelevantes si te haces entender.
La practica hace al maestro, Gran clase
Qué es un valor verdadero en javascript https://developer.mozilla.org/en-US/docs/Glossary/Truthy
Qué es un valor falso: https://developer.mozilla.org/en-US/docs/Glossary/Falsy
Pista: En general si hay algo en vez de nada en javascript es verdadero, asi sea un string!
Para recordar: No es recomendable hacer directamente test() sin describe() porque perderemos información y no queremos que pase esto.
Las pruebas son información de nuestro código.
import {isNull, isTrue, isFalse, isUndefined} from '../true_or_false.js' /** .toBeNull() DATOS NULL .toBeTruthy() DATOS VERDADEROS .toBeFalsy() DATOS FALSOS .toBeUndefined() DATOS INDEFINIDOS */ describe ("Probar resultados nulos", () => { test("Nulo", () => { expect(isNull()).toBeNull(); }); }); describe ("Probar resultados verdaderos", () => { test("Verdadero", () => { expect(isTrue()).toBeTruthy(); }); }); describe ("Probar resultados falsos", () => { test("Falso", () => { expect(isFalse()).toBeFalsy(); }); }); describe ("Probar resultados indefinidos", () => { test("Indefinido", () => { expect(isUndefined()).toBeUndefined(); }); });
A todo esto es importante recordar (a ustedes y a mi mismo), que cómo buena práctica las funciones SIEMPRE deberían retornar algo, asi sea otra función, asi sea un simple true.
Luis Peris, lo menciona con PHP https://luisperis.com/programar-correctamente-objetos-php/
" Los métodos/funciones en PHP siempre tienen que devolver algo El primer error que me encuentro mucho (pero mucho), es que muchos programadores crean métodos en los objetos que no devuelven nada.
Esto es posible, porque quizás el método guarda algo en la base de datos y no se espera ningún resultado o simplemente porque utiliza un “echo”, pero esto, sea como sea, es un error. Los métodos y las funciones siempre deberían de devolver algo.
Si por ejemplo, guardamos algo en la base de datos, podríamos hacer que devolviera un “true” si todo ha ido correctamente o un “false” si ha ocurrido algún error. "
hola! a mi no me aparece el resultado de la prueba en terminal. me dice que no puedo correrla, ¿por qué es?? aiuda U_U
Bladia@Elliot MINGW64 ~/proyectos/platzitest (master) $ npx jest true.test.js
FAIL test/true.test.js ● Test suite failed to run
Jest encountered an unexpected token This usually means that you are trying to import a file which Jest cannot parse, e.g. it's not plain JavaScript. By default, if Jest sees a Babel config, it will use that to transform your files, ignoring "node_modules". Here's what you can do: • To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config. • If you need a custom transformation specify a "transform" option in your config. • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option. You'll find more details and examples of these config options in the docs: https://jestjs.io/docs/en/configuration.html Details: SyntaxError: C:\Users\Bladia\Proyectos\platzitest\__test__\true.test.js: Unexpected token (6:16) 4 | describe ('probar resultados nulos', () =>{ 5 | test ('null', ()=> { > 6 | expect (isNull,()).toBeNull(); | ^ 7 | }); 8 | }); at Parser.raise (node_modules/@babel/parser/lib/index.js:6931:17) at Parser.unexpected (node_modules/@babel/parser/lib/index.js:8324:16) at Parser.parseParenAndDistinguishExpression (node_modules/@babel/parser/lib/index.js:9753:12) at Parser.parseExprAtom (node_modules/@babel/parser/lib/index.js:9504:21) at Parser.parseExprSubscripts (node_modules/@babel/parser/lib/index.js:9166:23) at Parser.parseMaybeUnary (node_modules/@babel/parser/lib/index.js:9146:21) at Parser.parseExprOps (node_modules/@babel/parser/lib/index.js:9012:23) at Parser.parseMaybeConditional (node_modules/@babel/parser/lib/index.js:8985:23) at Parser.parseMaybeAssign (node_modules/@babel/parser/lib/index.js:8931:21) at Parser.parseExprListItem (node_modules/@babel/parser/lib/index.js:10253:18)
Test Suites: 1 failed, 1 total Tests: 0 total Snapshots: 0 total Time: 31.08s Ran all test suites matching /true.test.js/i.
Tienes un espacio y una coma de más en la linea 6:
expect (isNull,()).toBeNull();
Tu código para ese test debe ser:
describe('Probar resultados nulos', () => { test('null', () => { expect(isNull()).toBeNull(); }); });
Esto lo he tomado de los archivos de la clase, recuerda que se encuentran en el tab de archivos y enlaces a la derecha del vídeo.
Creo que el titulo del video tiene un typo, lo correcto debería ser: Truthiness
este tipo de cosa sucedes cuando no hay test implementados
Una buena práctica es usar Eslint junto con Prettier. El primero se encargara de que escribas un código de calidad basado en estándares previamente definidos o customizados, mientras que el segundo se encargara de formatear tu código de excelente forma.
Con Prettier y Eslint también podemos manejar el máximo de caracteres en una lineal para que se quiebre en una segunda.
Una forma para probar los test de manera automática y auto-completar la sintaxis de describe y test es con la extensión de Jest para Visual Studio Code: https://marketplace.visualstudio.com/items?itemName=Orta.vscode-jest
Excelente informacion!! :D
les recomiendo este plugin para vs code , les ayudara a la escritura de jest , busquenlo como "jest snipsheet"