"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cuál es la principal diferencia entre afirmarTimeout y afirmarTimeoutPreemptivemente?

¿Cuál es la principal diferencia entre afirmarTimeout y afirmarTimeoutPreemptivemente?

Publicado el 2024-07-30
Navegar:816

En esta publicación de blog, explicaré cuál es la principal diferencia entre estos métodos. En primer lugar, ¿por qué utilizamos estos métodos? Este método será útil cuando probemos el rendimiento de nuestros métodos o queremos saber cuánto tiempo tarda nuestro método en completarse.

¿Cómo funcionan estos métodos?

Primero tenemos que darle tiempo a nuestro método de prueba, luego de eso estas pruebas ejecutan operaciones en la prueba. Si esta operación lleva más tiempo del especificado, esta prueba fallará.

Diferencia entre afirmarTimeout y afirmarTimeoutPreemptivemente

Bien, ahora sabemos cuáles son estos métodos y por qué los usamos en nuestros métodos de prueba. Entonces debemos saber la diferencia.

Déjame explicarte brevemente. El método afirmarTimeout cuenta el tiempo que le damos; si nuestro método de prueba tarda más de lo especificado, esta prueba fallará después de que se completen todas las operaciones. Sin embargo, si el método afirmarTimeoutPreemptively tarda más de lo especificado, este método fallará inmediatamente. Y no esperará a que se completen todos los procesos; lo probaremos en el proyecto en el siguiente paso.

Prueba

Primero abre tu IDE favorito. Abro Intellij Idea porque este IDE es muy popular entre los desarrolladores de Java. Por supuesto, puede utilizar su IDE favorito, como Eclipse o Netbeans, cuál prefiera.

Ahora cree un nuevo proyecto Maven y agregue estas 2 dependencias a su archivo pom.xml.


    org.junit.jupiter
    junit-jupiter-api
    5.3.1
    test


    org.junit.jupiter
    junit-jupiter-engine
    5.3.1
    test

Después de agregarlos, abra la carpeta src/test/java y

Crea una nueva clase y dale el nombre que quieras. Le daré TimeoutTest.

Cree 2 métodos de prueba, uno de ellos prueba afirmarTimeout y el otro prueba afirmarTimeoutPreemptivemente.

assertTimeout and assertTimeoutPreemptively

Después de eso, doy la duración y agrego un mensaje impreso simple.

Informational messages

Agrego el método Thread.sleep() y Thread duerme 8000 ms (8 segundos). Pero estos 2 métodos fallarán porque tardan más de 3 segundos. Permítanme probar estos métodos para comprender mejor.

result of methods

Y ves que el método testAssertTimeout tarda 8s 3ms porque este método espera para completar todas las operaciones, pero el otro tarda 3s 45ms y no espera para completar otro proceso. , falla inmediatamente.

Puedes ver que el método testAssertTimeout imprime el mensaje, pero el método afirmarTimeoutPreemptively no imprime el mensaje, ignoró otras operaciones.

Conclusión

En esta publicación hablamos sobre la principal diferencia entre afirmarTimeout y afirmarTimeoutPreemptivemente.

Por fin, el código está disponible en Github.

Cuídate, nos vemos pronto.

Declaración de liberación Este artículo se reproduce en: https://dev.to/mammadyahyayev/what-is-the-main-difference-between-asserttimeout-and-asserttimeoutpreemptively-8l?1 Si hay alguna infracción, comuníquese con [email protected] para borrarlo
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3