From eb2ea25b8ea64347dddc934954b4fa3b1bc1a58a Mon Sep 17 00:00:00 2001 From: AlexisLeDain Date: Wed, 8 Apr 2026 22:31:04 +0200 Subject: [PATCH] fix: clarify AssertJ vs JUnit assertion guidance in quarkus-tdd Changed "Always use AssertJ" to "Prefer AssertJ for value checks" and documented the intended pattern: JUnit assertThrows/assertDoesNotThrow for exception lifecycle, AssertJ for value validation. This matches the actual code examples in the document. --- docs/ja-JP/skills/quarkus-tdd/SKILL.md | 5 +++-- docs/tr/skills/quarkus-tdd/SKILL.md | 5 +++-- docs/zh-CN/skills/quarkus-tdd/SKILL.md | 5 +++-- skills/quarkus-tdd/SKILL.md | 5 +++-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/docs/ja-JP/skills/quarkus-tdd/SKILL.md b/docs/ja-JP/skills/quarkus-tdd/SKILL.md index 8bfacb40..7be26f67 100644 --- a/docs/ja-JP/skills/quarkus-tdd/SKILL.md +++ b/docs/ja-JP/skills/quarkus-tdd/SKILL.md @@ -357,9 +357,10 @@ mvn jacoco:check - メッセージバリデーション付き例外シナリオに`assertThrows`を使用 ### アサーション -- JUnitアサーションの代わりに**常にAssertJ**(`assertThat`)を使用 +- 値チェックにはJUnitアサーションより**AssertJを優先**(`assertThat`) - 読みやすさのためにAssertJのfluent APIを使用 -- 例外: `assertThatThrownBy(() -> ...).isInstanceOf(...).hasMessageContaining(...)` +- 例外: JUnitの`assertThrows`でキャプチャし、AssertJでメッセージを検証 +- 成功パス: JUnitの`assertDoesNotThrow`を使用 ### イベント駆動テスト - `AdviceWith`と`MockEndpoint`でCamelルートをテスト diff --git a/docs/tr/skills/quarkus-tdd/SKILL.md b/docs/tr/skills/quarkus-tdd/SKILL.md index d50c1876..2ebb9d3f 100644 --- a/docs/tr/skills/quarkus-tdd/SKILL.md +++ b/docs/tr/skills/quarkus-tdd/SKILL.md @@ -858,9 +858,10 @@ mvn jacoco:check - %80+ satır kapsamı, %70+ branch kapsamı hedefleyin ### Assertion'lar -- JUnit assertion'ları yerine **her zaman AssertJ** (`assertThat`) kullanın +- Değer kontrolleri için JUnit assertion'ları yerine **AssertJ'yi tercih edin** (`assertThat`) - Okunabilirlik için akıcı AssertJ API'si kullanın: `assertThat(list).hasSize(3).contains(item)` -- Exception'lar için: `assertThatThrownBy(() -> ...).isInstanceOf(...).hasMessageContaining(...)` +- Exception'lar için: JUnit `assertThrows` ile yakalayın, ardından AssertJ ile mesajı doğrulayın +- Fırlatılmayan başarı yolları için: JUnit `assertDoesNotThrow` kullanın - Koleksiyonlar için: `extracting()`, `filteredOn()`, `containsExactly()` ### Entegrasyon Testi diff --git a/docs/zh-CN/skills/quarkus-tdd/SKILL.md b/docs/zh-CN/skills/quarkus-tdd/SKILL.md index 4afc3bb2..918957e8 100644 --- a/docs/zh-CN/skills/quarkus-tdd/SKILL.md +++ b/docs/zh-CN/skills/quarkus-tdd/SKILL.md @@ -357,9 +357,10 @@ mvn jacoco:check - 异常场景使用`assertThrows`并验证消息 ### 断言 -- **始终使用AssertJ**(`assertThat`)代替JUnit断言 +- 值检查**优先使用AssertJ**(`assertThat`)而非JUnit断言 - 使用流式AssertJ API提高可读性 -- 异常断言: `assertThatThrownBy(() -> ...).isInstanceOf(...).hasMessageContaining(...)` +- 异常: 使用JUnit `assertThrows`捕获,再用AssertJ验证消息 +- 成功路径: 使用JUnit `assertDoesNotThrow` ### 事件驱动测试 - 使用`AdviceWith`和`MockEndpoint`测试Camel路由 diff --git a/skills/quarkus-tdd/SKILL.md b/skills/quarkus-tdd/SKILL.md index 6e942e03..08aa7774 100644 --- a/skills/quarkus-tdd/SKILL.md +++ b/skills/quarkus-tdd/SKILL.md @@ -861,9 +861,10 @@ mvn jacoco:check - Aim for 80%+ line coverage, 70%+ branch coverage ### Assertions -- **Always use AssertJ** (`assertThat`) instead of JUnit assertions +- **Prefer AssertJ** (`assertThat`) over JUnit assertions for value checks - Use fluent AssertJ API for readability: `assertThat(list).hasSize(3).contains(item)` -- For exceptions: `assertThatThrownBy(() -> ...).isInstanceOf(...).hasMessageContaining(...)` +- For exceptions: use JUnit `assertThrows` to capture, then AssertJ to validate the message +- For non-throwing success paths: use JUnit `assertDoesNotThrow` - For collections: `extracting()`, `filteredOn()`, `containsExactly()` ### Testing Integration