CursosEmpresasBlogLiveConfPrecios

Implementando pruebas para Boolean y Array

Clase 4 de 16 • Curso de Unit Testing con Jest en React

Clase anteriorSiguiente clase

Contenido del curso

Bienvenida

  • 1
    Bienvenido al Curso de Jest

    Bienvenido al Curso de Jest

    01:09 min
  • 2
    ¿Qué es un Test? ¿Qué tipos de Test Existen? Jest

    ¿Qué es un Test? ¿Qué tipos de Test Existen? Jest

    03:19 min

Introducción a Jest

  • 3
    Preparación del entorno con Jest

    Preparación del entorno con Jest

    09:07 min
  • 4
    Implementando pruebas para Boolean y Array

    Implementando pruebas para Boolean y Array

    Viendo ahora
  • 5
    Implementando pruebas a promesas

    Implementando pruebas a promesas

    08:30 min
  • 6
    Watch y Coverage

    Watch y Coverage

    12:13 min

Usando Jest con React

  • 7
    Preparar proyecto

    Preparar proyecto

    13:35 min
  • 8
    Crear mocks

    Crear mocks

    11:32 min
  • 9
    Implementar provider mock

    Implementar provider mock

    14:15 min
  • 10
    Snapshot

    Snapshot

    08:32 min
  • 11
    Probar Actions

    Probar Actions

    05:21 min
  • 12
    Probar Reducers

    Probar Reducers

    07:24 min
  • 13
    Probar peticiones fetch

    Probar peticiones fetch

    10:12 min

Deploy y CI con Travis

  • 14
    Jest + CI

    Jest + CI

    09:02 min
  • 15
    Probando el proyecto antes de hacer deploy

    Probando el proyecto antes de hacer deploy

    07:49 min
  • 16
    Recapitulación y cierre

    Recapitulación y cierre

    00:56 min
Tomar examen

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads
        Rulo Code

        Rulo Code

        student•
        hace 6 años

        Probar String

        const text = "Hola Mundo"; test('Debe contener Mundo', ()=>{ expect(text).toMach(/Mundo/); })

        Probar Array

        test('¿Tenemos mango?', ()=>{ expect(fruits).toContain('mango') })

        Probar números

        test('Mayor que', ()=>{ expect(10).toBeGreaterThan(9) })

        Probar booleano

        test('Verdadero', ()=>{ expect(true).toBeTruthy() })

        Probar callback

        const reverseString = (str, callback) => { callback(str.slipt("").reverse().join("")) } test('Probar un callback', ()=>{ reverseString('hola', (str)=>{ expect(str).toBe('aloh') }) })
          Arantxa Giovanna Rosas Del Valle

          Arantxa Giovanna Rosas Del Valle

          student•
          hace 6 años

          Hola Camilo solo una observación, en el primer ejemplo que pusiste debe ir toMatch te faltó agregar una t, tal como le pasó a Óscar en el ejemplo pasado. Saludos

          Cristian Caballero

          Cristian Caballero

          student•
          hace 6 años

          Y en la reverseString, debio ser split no slipt

        Alan David R.L.

        Alan David R.L.

        student•
        hace 6 años

        Código de la clase

        const frameworks = ["React", "Vue", "Angular", "Svelte"]; // Test arrays test("It should has React", () => { expect(frameworks).toContain("React"); }); // Test numbers test("It should be greater than", () => { expect(10).toBeGreaterThan(9); }); // Test Booleans test("It should be true", () => { expect(true).toBeTruthy(); }); // Reverse strings function const reverseString = (str, cb) => { cb(str.split("").reverse().join("")); }; // Test callbacks test("The callback should return a reversed word", () => { reverseString("Platzi", str => { expect(str).toBe("iztalP"); }); });
        Sergio Estrella

        Sergio Estrella

        teacher•
        hace 5 años

        Viendo la clase, me entró la curiosidad de ¿Cómo haría si quiero evaluar cada uno de los elementos de un array en un solo test?

        Así que me puse a probar con evaluar si todos los elementos de un array eran mayores a 10

        const arr = [15, 11, 12, 20, 50]; test("Check if the numbers of an array are grater than 10", () => { arr.map((item) => { expect(item).toBeGreaterThan(10); }); });

        De los aprendizajes más curiosos que me llevo es que

        1. La función anónima puede tener mucha más lógica que solamente los expect() y cómo queremos testear. El ejemplo es el .map() que recorre todo el array.
        2. Se puede tener más de un solo expect() dentro de un test, y que si falla al menos uno, falla todo el test

        Los invito a probar el código que está arriba, y que jueguen libremente con los test y resuelvan sus dudas probando y rompiendo ;)

          Emmanuel Rodríguez

          Emmanuel Rodríguez

          student•
          hace 5 años

          Claro, pero itera mejor con for..of:

          let fruits = ["Apple", "Orange", "Plum"]; // iterates over array elements for (let fruit of fruits) { console.log( fruit ); }

          Mejora tu performance al quitarle la retentiva de creación con map.

          Sergio Estrella

          Sergio Estrella

          teacher•
          hace 5 años

          No había considerado eso 😮

          Gracias por el aporte :D

        Daniel Esteban Santos Mendez

        Daniel Esteban Santos Mendez

        student•
        hace 5 años

        Cabe resaltar que toBeTruthy() es solo para true, para false usamos toBeFalsy(), ya que Oscar dijo que servia para True o False es bueno resaltarlo.

          Iván Darío Sánchez Jiménez

          Iván Darío Sánchez Jiménez

          student•
          hace 4 años

          Es solo para valores truthy y falsy diferente que si son de tipo booleano, le puedes pasar toBeTruthy('false') como string y la prueba es valida

        Paul Mayorga

        Paul Mayorga

        student•
        hace 6 años

        Estoy tratando de entender el porque de las pruebas ? Porque es necesario ? Si usamos typescript seria mejor y no nos equivocamos con los tipos de datos? Perdon mi ignorancia pero necesito entender el porque

          John Parra

          John Parra

          student•
          hace 6 años

          Usamos pruebas unitarias para mejorar la calidad del código en nuestros desarrollos. Es necesario ya que nos permite ver cosas que no vemos en el momento en el que se desarrolla. Es bueno usar typescript sin embargo tambien podemos aplicarle pruebas para cubrir cosas que no vemos al desarrollar una funcionalidad.

          Por ejemplo: En este video podemos conocer como probar un callback, números, booleanos y arreglos tambien.

          Juan Carrillo

          Juan Carrillo

          student•
          hace 6 años

          Me hice la misma pregunta cuando comencé a trabajar formalmente, aunque utilizamos otra suit de pruebas, es tedioso después de agregar un feature tener que hacer las pruebas también o viceversa. Con el tiempo me di cuenta que aunque quita tiempo te da muchas ventajas, por ejemplo:

          • Después de modificar código o agregar una nueva característica, corres lo test y estos te ayudan a comprobar que no rompiste alguna otra funcionalidad, así que te sientes más tranquilo.
          • Por otro lado si tienes algún servicio de integración continua, que por ejemplo corra los tests cada vez que alguien del equipo cree un pull request, y que bloquee el PR y no habilite a mergeo hasta que no pasen los test o cumpla con el test covegare acordado por el equipo, te estarás asegurando de introducir menos bugs.
          • Aunque a veces pueden ser una arma de doble filo, cuando no se testea lo que se debe testear, y resulta que por ejemplo ante algún minimo cambio en la estructura del código más no en su lógica de negocio tengas que cambiar todos los tests.
          • En definitiva agregar test a tu proyecto suma seguridad en que tu código hace lo que necesitas.
        Martín David Roldán

        Martín David Roldán

        student•
        hace 4 años

        Funciones para probar números, strings, arrays, objetos y booleanos

        Estructura general para ejecutar un test

        test('Título que va a describir el test a realizar', () => { expect().<-- METODO A EJECUTAR --> })

        Números

        test('Dos mas dos', () => { const value = 2 + 2; expect(value).toBeGreaterThan(3); expect(value).toBeGreaterThanOrEqual(3.5); expect(value).toBeLessThan(5); expect(value).toBeLessThanOrEqual(4.5); // Para testear que el valor de prueba retorne siempre un valor definido expect(value).toBe(4); expect(value).toEqual(4); });
        • Números flotantes
        test('Testeo de números flotantes', () => { const value = 0.1 + 0.2; // Para testear un flotante se debe usar la siguiente línea, ya que si se implementa // la función <-- toBe --> retortana una prueba fallida ya que JavaScript redondea // con un pequeño margen de error. expect(value).toBeCloseTo(0.3); });

        Strings

        • Los strings pueden evaluarse mediante expresiones regulares o simplemente entre comillas (" ")
        test('Para testear que algo no se encuentre en un string', () => { expect('platzi').not.toMatch(/n/); }); test('A la grande le puse cuca', () => { expect('grande').toMatch("rande"); });

        Arrays y iterables

        • Array
        const frutas= ['Manzana', 'Pera', 'Banana'] test('¿Tenemos una banana en el array?', () => { expect(fruits).toContain('Banana') })
        • Objetos
        const personajes = { uno: "Homero", dos: "Marge", tres: "Lisa", cuatro: "Bart", cinco: "Maggie" } test('¿Existe el persona Bart en el objeto?', () => { expect(personajes.cuatro).toContain('Bart') })

        Comprobar booleanos, undefined y null

        • toBeNull comprueba que el testeo solo debe ser null.
        • toBeUndefined comprueba que el testeo solo debe undefined.
        • toBeDefined comprueba que el testeo debe ser lo opuesto a undefined. Es estado de lo que se prueba debe estar definido.
        • toBeTruthy comprueba que el testeo solo debe true.
        • toBeFalsy comprueba que el testeo solo debe false.

        Extra

        Para negar cualquier tipo de testeo y esperar el resultado opuesto se debe usar not antes del método a ejecutar.

          Andrés Felipe Eslava Zuluaga

          Andrés Felipe Eslava Zuluaga

          student•
          hace 4 años
          test('execute a callback', () => { reverseString('Hello', (str) => { expect(str).not.toBe('Hello') }) })
          Diego Toro Cárdenas

          Diego Toro Cárdenas

          student•
          hace 3 años
          const NN = null; test("Check that test is only null", () => { expect(NN).toBeNull(); });
        Danilo Valenzuela

        Danilo Valenzuela

        student•
        hace 5 años

        La función to Match te permite ver el formato del String que estás pasando lo que lo hace muchísimo más potente. Platzi tiene un curso muy bueno de expresiones regulares dictado por @beco.

        Willy David Da Conceicao Lozada

        Willy David Da Conceicao Lozada

        student•
        hace 6 años

        Here el código de esta clase :) ![](

        carbon (1).png

        Jorge De Jesus Tejeda Bello

        Jorge De Jesus Tejeda Bello

        student•
        hace 5 años
        const fruits = ["banana", "melon", "sandia", "naranja", "limon", "pepino"]; export const arrayFruits = () => fruits;
        import { arrayFruits, arrayColors } from "../array"; describe("Probando nuestros arreglos", () => { test("Tiene una banana", () => { expect(arrayFruits()).toContain("banana"); }); test("¿No tiene una mango?", () => { expect(arrayFruits()).not.toContain("mango"); }); })
        Luis Eduardo Rodríguez Ramírez

        Luis Eduardo Rodríguez Ramírez

        student•
        hace 3 años

        Les dejo la función de una forma más amigable

        const reverseString = (str, callback) => { const splitted = str.split(''); const reversed = splitted.reverse(); const joined = reversed.join(''); callback(joined); }
          Diego Toro Cárdenas

          Diego Toro Cárdenas

          student•
          hace 3 años

          Sin test y sin expect ¿?

        Rafael Soriano Ramírez

        Rafael Soriano Ramírez

        student•
        hace 5 años

        Excelente el orden y yo sufriendo con los QA

        Ever Alfredo Sorto Ayala

        Ever Alfredo Sorto Ayala

        student•
        hace 5 años

        Me surge una duda, En el callback :

        const reverseString = (str,callback)=>{ callback(str.split("").reverse().join("")) }

        ok se el concepto: es una función que tiene como parámetro otra función, ok al finalizar la primera se procede a brindar el resultado a la segunda , pero ambas se llaman callback y eso me confunde, lo que entiendo al leer el código es :

        const reverseString = (str,callback)=>{ callback(str.split("").reverse().join("")) // el segundo parámetro ejecútalo con esta función }

          Giovanni Aranda

          Giovanni Aranda

          student•
          hace 5 años

          Hola,

          Lo que sucede es cuando tu esperas de parametro una función por lo general de buenas practicas le llamas callback, pero tu le puedes llamar como sea siempre y cuando no utilices una palabra reservada de JavaScript.

          Lo que se ejecuta en la segunda linea es que utilizas la función que se paso por parametro y le pasas un parametro ya que esa función esta esperando un parametro String.

          Ejemplo

          const reverseString = (str,callback)=>{ callback(str.split("").reverse().join("")) } const stringReverse = (str) => { console.log(str) } reverseString('Palabra', stringReverse)
        Sergio Estrella

        Sergio Estrella

        teacher•
        hace 5 años

        toContain sirve para testear cualquier iterable? Ejemplo, una lista

          Rob Arroyo

          Rob Arroyo

          student•
          hace 5 años

          Es para testear un array o que un string es un substring dentro de un string.

          https://jestjs.io/docs/expect#tocontainitem

        Cayo Legal

        Cayo Legal

        student•
        hace 3 años
        describe('Strings', () => { test('toBe', () => { expect('Test').toBe('Test') }) test('Match', () => { const expectedContainsWord = 'Hello'; expect('Hello World').toMatch(expectedContainsWord) }) }) describe('Numbers', () => { test('Greater than', () => { // Equal expect(2).toEqual(2) // Greater expect(1).toBeGreaterThan(0) // Greater or equal expect(2).toBeGreaterThanOrEqual(1) // Less than expect(1).toBeLessThan(2) // Less than or equal expect(1).toBeLessThanOrEqual(1) }) }) describe('Booleans', () => { test('True', () => { expect(true).toEqual(true) expect(false).toBe(false) /* accept truthy values */ expect(true).toBeTruthy() expect('abc').toBeTruthy() expect([]).toBeTruthy() expect({}).toBeTruthy() expect(1).toBeTruthy() // expect(null).toBeTruthy() /* this doesn't work bc null is not a truthy value */ /* accept falsy values */ expect(false).toBeFalsy() expect('').toBeFalsy() expect(null).toBeFalsy() expect(undefined).toBeFalsy() expect(NaN).toBeFalsy() expect(0).toBeFalsy() // expect(1).toBeFalsy() /* this doesn't work bc numbers greater than 0 are not falsy values */ }) }) describe('Arrays', () => { test('Countries', () => { /* with this don't work */ // const countries = ['Brazil', 'Singapur', 'New Zealand']; const countries = ['Brazil', 'Singapur', 'New Zealand', 'Paraguay']; expect(countries).toContain('Paraguay'); }) })
        Juan Roa

        Juan Roa

        student•
        hace 5 años

        Puedes hacer CMD + K Eso lo mismo que el clear y ahorras tiempo :)

        sue herrera

        sue herrera

        student•
        hace 6 años

        en la clase pasada, se paso el string a evaluar en \ \ : (\ Mundo \ ) se menciono: que era para delimitar las palabra; en ese caso de reverse la string si se pasa normal con comillas, cual será la diferencia, tal vez es básico perdón pero me confunde un poco.

          Eduardo Peredo Rivero

          Eduardo Peredo Rivero

          student•
          hace 6 años

          Lo que sucede es que el método Matchacepta como parámetro un string o una expresión regular, por eso es que para el ejemplo del Hola Mundo la test pasa de ambas formas.

          Puedes ver la documentación del método en la web de jest para mayor detalle.

          https://jestjs.io/docs/en/expect#tomatchregexporstring

        Juan Camilo Lentino Villalba

        Juan Camilo Lentino Villalba

        student•
        hace 3 años

        también podemos validar si existen varios elementos de un arreglo

        const fruits = ['melon','manzana','banana'] test('¿Tenemos una banana y una manzana?', ()=> { expect(fruits).toContain('banana','manzana') })
        Iván Darío Sánchez Jiménez

        Iván Darío Sánchez Jiménez

        student•
        hace 4 años

        toBeTruthy() y su contraparte toBeFalsy() no sirven para verificar valores de tipo booleano si no valores truthy o falsy, por lo que un test de la siguiente forma pasa la prueba

        test('Verdadero',() => { expect('false').toBeTruthy() })

        Recordemos que los valores Truthy pueden ser:

        Boolean(1) Boolean(“a”) Boolean([]) Boolean({}) Boolean(function(){})

        Valores : Truthy y Falsy

          Iván Darío Sánchez Jiménez

          Iván Darío Sánchez Jiménez

          student•
          hace 4 años

          Si quisieramos realmente verificar si es un valor true deberiamos usar el siguiente test

          test('Verdadero',() => { expect(true).toBe(true) })
        Nicolás Laverde

        Nicolás Laverde

        student•
        hace 3 años

        tobeTruthy no devuelve si es un booleano, retorna si lo que se le envia es un valor true en coersion de datos es decir "Hola" == true ( es true ) en ese caso toBeTruthy funciona... Pero Si usamos toBe(true) Es comparacion estricta es decir

        "Hola" === true? // False.

        Cristian Camilo Mateus Fierro

        Cristian Camilo Mateus Fierro

        student•
        hace 3 años

        Como probar callbacks