allra-test-writing
Написание Java-тестов по стандартам Allra
Написание backend-тестов без стандартов приводит к неоднородному покрытию и медленному выполнению. Этот навык предоставляет руководства по выбору тестовых помощников, паттерны Fixture Monkey и проверенные шаблоны JUnit 5, AssertJ и Mockito для быстрых и надежных тестов.
تنزيل ZIP المهارة
رفع في Claude
اذهب إلى Settings → Capabilities → Skills → Upload skill
فعّل وابدأ الاستخدام
اختبرها
استخدام "allra-test-writing". Напиши юнит-тест для UserService, который проверяет, что findById возвращает пользователя, когда пользователь существует
النتيجة المتوقعة:
- • Создай тестовый класс с @ExtendWith(MockitoExtension.class)
- • Настрой @Mock для UserRepository с findById, возвращающим фикстуру пользователя
- • Используй @InjectMocks для UserService
- • Структурируй тест с комментариями Given-When-Then
- • Проверь результат с помощью assertThat и assertNotNull
- • Добавь verify(repository, times(1)) для подтверждения одного вызова
استخدام "allra-test-writing". Должен ли я использовать IntegrationTest для тестирования обработки платежей, которая включает денежные транзакции?
النتيجة المتوقعة:
- • Да, IntegrationTest подходит для денежных транзакций
- • Это включает проверку реальных транзакций БД, что требует IntegrationTest
- • Используй @MockBean для внешнего платежного шлюза
- • Проверь фактическое состояние БД после обработки платежа
- • Стремись поддерживать соотношение IntegrationTest ниже 5%
التدقيق الأمني
آمنThis is a pure documentation skill containing only markdown guidelines for Java/Spring Boot testing standards. The static analyzer flagged 105 'issues' but ALL findings are FALSE POSITIVES. The 'backtick execution' detections are markdown code block delimiters, not Ruby/shell commands. 'C2 keywords' and 'weak crypto' flags are triggered by metadata field names (content_hash, tree_hash) and Java variable names in test examples (execute, trigger, command). No executable code, scripts, or network calls exist. This skill only provides documentation for test writing patterns and is safe for publishing.
عوامل الخطر
🌐 الوصول إلى الشبكة (1)
⚙️ الأوامر الخارجية (72)
درجة الجودة
ماذا يمكنك بناءه
Написание единообразных юнит-тестов
Применение выбора тестовых помощников Allra и соглашений об именовании для новых тестов Java-сервисов
Создание тестовых данных с помощью Fixture Monkey
Генерация сложных тестовых фикстур с пользовательскими значениями полей для сценариев интеграционного тестирования
Установление командных стандартов тестирования
Определение политик использования тестовых помощников и ожиданий по покрытию в backend-проектах
جرّب هذه الموجهات
Напиши JUnit 5 юнит-тест для {ServiceName}. Используй паттерн MockingUnitTest с @ExtendWith(MockitoExtension.class). Включи @Mock для зависимостей и @InjectMocks для сервиса. Примени структуру Given-When-Then с DisplayName на корейском языке.Создай тест, который генерирует 5 сущностей User с использованием Fixture Monkey с конкретными значениями полей для email и status. Используй AssertJ для проверки, что все сгенерированные пользователи имеют корректный формат email и активный статус.
Должен ли я использовать IntegrationTest или MockingUnitTest для тестирования {feature}? Функция включает {money_transactions/transaction_rollback/multi_table_validation/complex_state_machine}. Объясни почему со ссылкой на стандарты Allra.Напиши ControllerTest для {ControllerName} с использованием @WebMvcTest. Замокируй базовый сервис с помощью @MockBean. Проверь HTTP-статус 200 и структуру JSON-ответа, используя mockMvc.perform и assertThat с jsonPath.أفضل الممارسات
- Используй паттерн Given-When-Then с @DisplayName на корейском языке для ясности тестов
- По умолчанию используй MockingUnitTest; резервируй IntegrationTest для денежных транзакций, проверки отката или многосервисных рабочих процессов
- Применяй гибкие утверждения AssertJ с isEqualTo, isTrue, isPresent и hasMessageContaining
تجنب
- Избегай IntegrationTest для простых CRUD-операций, которые могут быть проверены с помощью моков зависимостей
- Не пропускай @DisplayName и не используй расплывчатые имена тестовых методов без сценария и ожидаемого результата
- Избегай тестирования нескольких аспектов в одном тестовом методе
الأسئلة المتكررة
Какие версии Java и Spring Boot поддерживает этот навык?
Какова рекомендуемая цель покрытия тестами?
Безопасно ли использовать Fixture Monkey для производственных тестовых данных?
Как выбрать между MockingUnitTest и IntegrationTest?
Каково ожидаемое время выполнения тестов?
Как этот навык соотносится с другими фреймворками тестирования?
تفاصيل المطور
المؤلف
Allra-Fintechالترخيص
MIT
المستودع
https://github.com/Allra-Fintech/allra-ai-skills/tree/main/backend-plugin/skills/test-writingمرجع
main
بنية الملفات
📄 SKILL.md