[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-spring-test-kak-nastroit-profili-dlya-testov":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},705,"kak-nastroit-profili-dlya-testov",16,"spring-test","Spring Test","🧪","Как настроить профили для тестов?","Spring Boot позволяет использовать отдельные файлы конфигурации для тестового окружения через механизм профилей.\n\n### Создание тестовой конфигурации\n\nФайл `src\u002Ftest\u002Fresources\u002Fapplication-test.yml`:\n\n\u003Cdetails>\u003Csummary>Пример конфигурации\u003C\u002Fsummary>\n\n```yaml\nspring:\n  datasource:\n    url: jdbc:h2:mem:testdb\n    driver-class-name: org.h2.Driver\n    username: sa\n    password:\n  jpa:\n    hibernate:\n      ddl-auto: create-drop\n    show-sql: true\n    properties:\n      hibernate:\n        format_sql: true\n  mail:\n    host: localhost\n    port: 3025\n\napp:\n  external-api:\n    url: http:\u002F\u002Flocalhost:8089\u002Fmock-api\n  feature:\n    notifications-enabled: false\n```\n\n\u003C\u002Fdetails>\n\n### Активация профиля в тестах\n\n```java\n@SpringBootTest\n@ActiveProfiles(\"test\")\nclass UserServiceTest {\n\n    @Value(\"${app.external-api.url}\")\n    private String apiUrl;\n\n    @Test\n    void shouldUseTestConfiguration() {\n        assertEquals(\"http:\u002F\u002Flocalhost:8089\u002Fmock-api\", apiUrl);\n    }\n}\n```\n\n### Несколько профилей\n\n```java\n@SpringBootTest\n@ActiveProfiles({\"test\", \"local\"})\nclass MultiProfileTest {\n    \u002F\u002F Загружает application-test.yml и application-local.yml\n}\n```\n\n### Переопределение отдельных свойств\n\n```java\n\u002F\u002F Через @SpringBootTest\n@SpringBootTest(properties = {\n    \"app.feature.notifications-enabled=false\",\n    \"spring.jpa.show-sql=true\"\n})\nclass PropertyOverrideTest { \u002F* ... *\u002F }\n\n\u002F\u002F Через @TestPropertySource\n@SpringBootTest\n@TestPropertySource(locations = \"classpath:custom-test.properties\")\nclass CustomPropertyTest { \u002F* ... *\u002F }\n\n@SpringBootTest\n@TestPropertySource(properties = {\n    \"app.timeout=5000\",\n    \"app.retry-count=3\"\n})\nclass InlinePropertyTest { \u002F* ... *\u002F }\n```\n\nSpring Boot сначала ищет файлы конфигурации в `src\u002Ftest\u002Fresources`. Если там есть `application.properties` или `application.yml`, он используется вместо файла из `src\u002Fmain\u002Fresources`.\n\n> **На собеседовании:** важно знать приоритет: `@TestPropertySource` > `@SpringBootTest(properties)` > `application-test.yml` > `application.yml`. Частая ошибка — положить `application.properties` в `src\u002Ftest\u002Fresources` и удивляться, что production-конфигурация полностью перекрыта.","","junior",[7],[],null,{"title":18,"description":19,"ogTitle":18,"ogDescription":19,"keywords":20,"schemaAnswer":19,"featuredSnippetReady":21},"Как настроить профили для тестов? — Gymterview","Spring Boot позволяет использовать отдельные файлы конфигурации для тестового окружения через механизм профилей.",[7,13],true]