[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-spring-test-kakie-metody-utverzhdeniy-assertions-predostavlyaet-junit-5":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":15,"progress":16,"seo":17},690,"kakie-metody-utverzhdeniy-assertions-predostavlyaet-junit-5",16,"spring-test","Spring Test","🧪","Какие методы утверждений (assertions) предоставляет JUnit 5?","JUnit 5 значительно расширил набор утверждений по сравнению с JUnit 4, добавив `assertAll`, `assertThrows` и `assertTimeout`.\n\n### assertAll — группировка проверок\n\nГруппирует несколько проверок и выполняет их все, даже если какая-то из них упадёт. Это позволяет увидеть все ошибки сразу:\n\n```java\n@Test\nvoid testUserProperties() {\n    User user = userService.findById(1L);\n\n    assertAll(\"Проверка свойств пользователя\",\n        () -> assertEquals(\"Иван\", user.getFirstName()),\n        () -> assertEquals(\"Иванов\", user.getLastName()),\n        () -> assertEquals(\"ivan@example.com\", user.getEmail()),\n        () -> assertNotNull(user.getCreatedAt())\n    );\n}\n```\n\n### assertThrows — проверка исключений\n\nПроверяет, что выполнение кода бросает ожидаемое исключение (замена `@Test(expected = ...)` из JUnit 4):\n\n```java\n@Test\nvoid shouldThrowExceptionWhenDivideByZero() {\n    Calculator calculator = new Calculator();\n\n    ArithmeticException exception = assertThrows(\n        ArithmeticException.class,\n        () -> calculator.divide(10, 0)\n    );\n\n    assertEquals(\"\u002F by zero\", exception.getMessage());\n}\n```\n\n### assertTimeout — проверка времени выполнения\n\nПроверяет, что операция выполняется за отведённое время. В отличие от `assertTimeoutPreemptively`, не прерывает выполнение:\n\n```java\n@Test\nvoid shouldCompleteInTime() {\n    assertTimeout(Duration.ofSeconds(2), () -> {\n        service.processData();\n    });\n}\n\n@Test\nvoid shouldCompletePreemptively() {\n    \u002F\u002F прервёт выполнение, если превышен лимит\n    assertTimeoutPreemptively(Duration.ofMillis(500), () -> {\n        Thread.sleep(100);\n        return \"результат\";\n    });\n}\n```\n\n### Другие полезные assertions\n\n\u003Cdetails>\u003Csummary>Пример кода\u003C\u002Fsummary>\n\n```java\n@Test\nvoid otherAssertions() {\n    \u002F\u002F Проверка на null\n    assertNotNull(object);\n    assertNull(nullObject);\n\n    \u002F\u002F Проверка истинности\u002Fложности\n    assertTrue(condition);\n    assertFalse(condition);\n\n    \u002F\u002F Проверка ссылочного равенства\n    assertSame(expected, actual);\n    assertNotSame(expected, actual);\n\n    \u002F\u002F Проверка с итерируемыми коллекциями\n    assertIterableEquals(List.of(1, 2, 3), actualList);\n\n    \u002F\u002F Проверка строк на совпадение строки\n    assertLinesMatch(\n        List.of(\"первая строка\", \"\\\\d+ элементов\", \"последняя строка\"),\n        actualLines\n    );\n}\n```\n\n\u003C\u002Fdetails>\n\n> **На собеседовании:** ключевые методы для упоминания — `assertAll`, `assertThrows`, `assertTimeout`. Частая ошибка — не знать про `assertAll` и описывать только базовые `assertEquals`\u002F`assertTrue`.","","junior",[7],[],null,{"title":18,"description":19,"ogTitle":18,"ogDescription":20,"keywords":21,"schemaAnswer":19,"featuredSnippetReady":22},"Какие методы утверждений (assertions) предоставляет JUnit 5? — Gymterview","JUnit 5 значительно расширил набор утверждений по сравнению с JUnit 4, добавив `assertAll`, `assertThrows` и `assertTimeout`.","JUnit 5 значительно расширил набор утверждений по сравнению с JUnit 4, добавив `assertAll`, `assertThrows` и `assertTime",[7,13],true]