«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > В чем основная разница между AssertTimeout и AssertTimeoutPreemptivity?

В чем основная разница между AssertTimeout и AssertTimeoutPreemptivity?

Опубликовано 30 июля 2024 г.
Просматривать:122

В этом посте я объясню, в чем основная разница между этими методами. Прежде всего, почему мы используем эти методы. Этот метод будет полезен, когда мы проверяем производительность наших методов или хотим узнать, сколько времени требуется для завершения нашего метода.

Как работают эти методы?

Сначала мы должны дать время нашему тестовому методу, после этого эти тесты выполняют операции в тесте. Если эта операция займет больше времени, чем указано, то этот тест завершится неудачей.

Разница между AssertTimeout и AssertTimeoutPreemptious

Хорошо, теперь мы знаем, что это за методы и почему мы используем их в наших методах тестирования. Тогда мы должны знать разницу.

Позвольте мне объяснить вкратце. Метод AssertTimeout подсчитывает время, которое мы даем. Если наш тестовый метод занимает больше времени, чем указано, этот тест завершится неудачно после завершения всех операций. Однако если метод AssertTimeoutPreemptivity занимает больше времени, чем указано, этот метод немедленно завершится ошибкой. И он не будет ждать завершения всех процессов, мы проверим это в проекте на следующем этапе.

Тест

Сначала откройте свою любимую IDE. Я открываю Intellij Idea, потому что эта IDE очень популярна среди Java-разработчиков. Конечно, вы можете использовать любимую IDE, такую ​​как Eclipse, Netbeans, какую вы предпочитаете.

Теперь создайте новый проект Maven и добавьте эти две зависимости в файл pom.xml.

org.junit.jupiterjunit-jupiter-api5.3.1testorg.junit.jupiterjunit-jupiter-engine5.3.1test

После добавления откройте папку src/test/java и

Создайте новый класс и дайте ему любое имя, которое вы хотите, я дам TimeoutTest.

Создайте 2 тестовых метода, один из них проверяет AssertTimeout, а другой проверяет AssertTimeoutPreemptivity.

assertTimeout and assertTimeoutPreemptively

После этого я указываю продолжительность и добавляю простое печатное сообщение.

Informational messages

Я добавляю метод Thread.sleep(), и поток переходит в режим сна 8000 мс (8 секунд). Но эти два метода потерпят неудачу, поскольку эти методы занимают больше 3 секунд. Позвольте мне протестировать эти методы, чтобы лучше понять.

result of methods

И вы видите, что метод testAssertTimeout занимает 8 с 3 мс, потому что этот метод ожидает завершения всех операций, а другой занимает 3 с 45 мс, и он не ждет завершения другого процесса , он немедленно терпит неудачу.

Вы можете видеть сообщение, метод testAssertTimeout печатает сообщение, но метод AssertTimeoutPreemptivity не печатает сообщение, он игнорирует другие операции.

Заключение

В этом посте мы говорили об основной разнице между AssertTimeout и AssertTimeoutPreemptivity.

Наконец-то код доступен на Github.

Берегите себя, до скорой встречи.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/mammadyahyaev/what-is-the-main-difference-between-asserttimeout-and-asserttimeoutpreemptivity-8l?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с [email protected] удалить его
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3