المهارات allra-test-writing
🧪

allra-test-writing

آمن 🌐 الوصول إلى الشبكة⚙️ الأوامر الخارجية

Написание Java-тестов по стандартам Allra

Написание backend-тестов без стандартов приводит к неоднородному покрытию и медленному выполнению. Этот навык предоставляет руководства по выбору тестовых помощников, паттерны Fixture Monkey и проверенные шаблоны JUnit 5, AssertJ и Mockito для быстрых и надежных тестов.

يدعم: Claude Codex Code(CC)
📊 69 كافٍ
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "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%

التدقيق الأمني

آمن
v5 • 1/16/2026

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.

2
الملفات التي تم فحصها
960
الأسطر التي تم تحليلها
2
النتائج
5
إجمالي عمليات التدقيق
تم تدقيقه بواسطة: claude عرض سجل التدقيق →

درجة الجودة

38
الهندسة المعمارية
100
قابلية الصيانة
87
المحتوى
21
المجتمع
100
الأمان
83
الامتثال للمواصفات

ماذا يمكنك بناءه

Написание единообразных юнит-тестов

Применение выбора тестовых помощников 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.
Тест API-контроллера
Напиши 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 поддерживает этот навык?
Этот навык ориентирован на Java 17+ и Spring Boot 3.2+ с JUnit 5, AssertJ, Mockito и опциональным Fixture Monkey.
Какова рекомендуемая цель покрытия тестами?
Стандарты Allra рекомендуют 70% покрытие для основной бизнес-логики. Целевое соотношение — 80% юнит-тестов (PojoUnit + MockingUnit) и 20% интеграционных тестов.
Безопасно ли использовать Fixture Monkey для производственных тестовых данных?
Да. Fixture Monkey генерирует тестовые данные в памяти без побочных эффектов в базе данных. Он специально разработан для безопасного создания тестовых фикстур.
Как выбрать между MockingUnitTest и IntegrationTest?
По умолчанию используй MockingUnitTest. Используй IntegrationTest только для обработки денег, проверки отката, целостности нескольких таблиц или совместной работы 3+ сервисов.
Каково ожидаемое время выполнения тестов?
Юнит-тесты должны выполняться за 1 секунду или меньше. Интеграционные тесты должны выполняться за 5 секунд или меньше для поддержания эффективности CI-конвейера.
Как этот навык соотносится с другими фреймворками тестирования?
Этот навык предоставляет специфичные для Allra соглашения поверх стандартных инструментов. Он делает акцент на выборе тестовых помощников, паттернах именования и командной согласованности.

تفاصيل المطور

بنية الملفات

📄 SKILL.md