"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Qual é a principal diferença entre assertTimeout e assertTimeoutPreemptively?

Qual é a principal diferença entre assertTimeout e assertTimeoutPreemptively?

Publicado em 30/07/2024
Navegar:775

Nesta postagem do blog, vou explicar qual é a principal diferença entre esses métodos. Em primeiro lugar, por que usamos esses métodos. Este método será útil quando testarmos o desempenho de nossos métodos ou quisermos saber quanto tempo nosso método leva para ser concluído.

Como esses métodos funcionam?

Primeiro temos que dar tempo ao nosso método de teste, depois disso esses testes executam operações no teste. Se esta operação levar mais tempo do que o especificado, este teste falhará.

Diferença entre assertTimeout e assertTimeoutPreemptively

Ok, agora sabemos o que são esses métodos e por que os usamos em nossos métodos de teste. Então devemos saber a diferença.

Deixe-me explicar brevemente. O método assertTimeout conta o tempo que damos, se nosso método de teste demorar mais do que o especificado, este teste falhará após todas as operações serem concluídas. No entanto, se o método assertTimeoutPreemptively demorar mais do que o especificado, esse método falhará imediatamente. E não vai esperar a conclusão de todos os processos, vamos testar isso no projeto na próxima etapa.

Teste

Primeiro abra seu IDE favorito. Abro o Intellij Idea porque este IDE é muito popular entre os desenvolvedores Java. Claro que você pode usar IDE favorito, como Eclipse, Netbeans, qual você preferir.

Agora crie um novo projeto Maven e adicione essas 2 dependências ao seu arquivo pom.xml.


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


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

Depois de adicioná-los, abra a pasta src/test/java e

Crie uma nova classe e dê o nome que quiser que darei TimeoutTest.

Crie 2 métodos de teste, um deles testa assertTimeout e o outro testa assertTimeoutPreemptively.

assertTimeout and assertTimeoutPreemptively

Depois disso eu dou a duração e adiciono uma mensagem impressa simples.

Informational messages

Eu adiciono o método Thread.sleep() e Thread dorme 8000 ms (8 segundos). Mas esses 2 métodos falharão porque levam mais de 3 segundos. Deixe-me testar esses métodos para entender melhor.

result of methods

E você vê que o método testAssertTimeout leva 8s 3ms porque esse método espera para concluir todas as operações, mas o outro leva 3s 45ms e não espera para concluir outro processo , ele falha imediatamente.

Você pode ver a mensagem que o método testAssertTimeout imprime a mensagem, mas o método assertTimeoutPreemptively não imprime a mensagem, ele ignorou outras operações.

Conclusão

Neste post falamos sobre a principal diferença entre assertTimeout e assertTimeoutPreemptively.

Finalmente o código está disponível no Github.

Cuide-se, até breve.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/mammadyahyayev/what-is-the-main-difference-between-asserttimeout-and-asserttimeoutpreemptively-8l?1 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3