[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-jira-kak-testirovat-plaginy-jira-dc":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":18,"progress":19,"seo":20},1062,"kak-testirovat-plaginy-jira-dc",27,"jira","Jira","📋","Как тестировать плагины Jira DC?","Тестирование плагинов Jira DC включает несколько уровней: юнит-тесты (Mockito), интеграционные тесты в контейнере Jira и UI-тесты.\n\n### Юнит-тесты (Mockito)\n\n```java\npublic class TaskConfigServiceTest {\n\n    @Mock private ActiveObjects ao;\n    @Mock private TaskConfig mockConfig;\n    private TaskConfigService service;\n\n    @Before\n    public void setUp() {\n        MockitoAnnotations.openMocks(this);\n        service = new TaskConfigService(ao);\n    }\n\n    @Test\n    public void testFindByProject() {\n        when(mockConfig.getProjectKey()).thenReturn(\"PROJ\");\n        when(mockConfig.isEnabled()).thenReturn(true);\n        when(ao.find(eq(TaskConfig.class), any(Query.class)))\n                .thenReturn(new TaskConfig[]{mockConfig});\n\n        TaskConfig[] results = service.findByProject(\"PROJ\");\n\n        assertEquals(1, results.length);\n        assertEquals(\"PROJ\", results[0].getProjectKey());\n    }\n}\n```\n\n### Интеграционные тесты (@Wired)\n\n```java\n@RunWith(AtlassianPluginsTestRunner.class)\npublic class TaskConfigServiceWiredTest {\n\n    @Inject private TaskConfigService configService;\n    @Inject private ActiveObjects ao;\n\n    @Test\n    public void testCreateAndFindConfig() {\n        TaskConfig created = configService.create(\"TEST\", \"{\\\"test\\\":true}\");\n        assertNotNull(created);\n\n        TaskConfig[] found = configService.findByProject(\"TEST\");\n        assertEquals(1, found.length);\n    }\n}\n```\n\n### Команды запуска тестов\n\n```bash\natlas-unit-test          # Юнит-тесты\natlas-integration-test   # Интеграционные тесты (запуск Jira + деплой плагина)\n```\n\n### Частые ошибки\n\n- Тестирование только через UI (ручное) — не масштабируется, регрессии не ловятся\n- Мокирование ComponentAccessor — лучше использовать DI и мокировать инжектированные сервисы\n- Не тестировать на версии Jira, близкой к production — API может отличаться\n- Не тестировать upgrade tasks — миграция данных ломается при обновлении плагина\n\n### Как используется в 2026\n\n- Atlassian DC Performance Toolkit — для нагрузочного тестирования в кластерном окружении\n- Docker-based тестовые окружения стали стандартом (вместо atlas-integration-test для CI\u002FCD)\n- Рекомендуемое покрытие: 70%+ юнит-тестами, ключевые сценарии — интеграционными\n- Тестирование обратной совместимости при rolling upgrades — требование для DC Marketplace\n\n> **На собеседовании:** покажите знание всех уровней тестирования. Юнит-тесты — обязательный минимум, мокайте все Jira-сервисы через Mockito. Интеграционные тесты медленные (запуск Jira), но ловят проблемы OSGi-совместимости. Используйте atlas-debug + IDE breakpoints для отладки.","","middle",[15,16,17,7],"junit","testing","jira-plugin",[],null,{"title":21,"description":22,"ogTitle":23,"ogDescription":24,"keywords":25,"schemaAnswer":33,"featuredSnippetReady":34},"Как тестировать плагины Jira DC — Gymterview","Тестирование Jira DC плагинов: юнит-тесты (Mockito), интеграционные тесты (@Wired, AtlassianPluginsTestRunner), REST API тесты, atlas-unit-test.","Тестирование плагинов Jira DC: unit, integration, UI тесты — Gymterview","Как тестировать Jira DC плагины: Mockito для юнит-тестов, AtlassianPluginsTestRunner для интеграционных, REST API тесты.",[26,27,28,29,30,31,32],"тестирование Jira плагинов","atlas-unit-test","atlas-integration-test","Mockito","AtlassianPluginsTestRunner","Jira DC","JUnit","Три уровня: юнит-тесты (Mockito, мокируют Jira-сервисы, atlas-unit-test), интеграционные (@Wired, AtlassianPluginsTestRunner, запуск реальной Jira, atlas-integration-test), UI-тесты (Page Objects). Рекомендуемое покрытие: 70%+ юнит-тестами, ключевые сценарии — интеграционными. Docker-based тестовые окружения стали стандартом для CI\u002FCD.",true]