This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a commit to branch WW-5659-lazy-params-request-scoping
in repository https://gitbox.apache.org/repos/asf/struts.git

commit 34ffa9a67471b39fb28754c57b625a17066f49b6
Author: Lukasz Lenart <[email protected]>
AuthorDate: Mon Jul 27 10:16:47 2026 +0200

    WW-5659 docs: clarify test base class constraint in the plan
    
    Co-Authored-By: Claude Opus 5 <[email protected]>
---
 .../superpowers/plans/2026-07-27-WW-5659-lazy-params-request-scoping.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/docs/superpowers/plans/2026-07-27-WW-5659-lazy-params-request-scoping.md 
b/docs/superpowers/plans/2026-07-27-WW-5659-lazy-params-request-scoping.md
index f1af340e8..8391167ae 100644
--- a/docs/superpowers/plans/2026-07-27-WW-5659-lazy-params-request-scoping.md
+++ b/docs/superpowers/plans/2026-07-27-WW-5659-lazy-params-request-scoping.md
@@ -14,7 +14,7 @@
 
 - **Ticket prefix:** every commit message starts with `WW-5659`.
 - **Target version:** 7.3.0. This is a deliberate public API break; no 
backport to 7.2.x.
-- **Test style:** `core` tests are JUnit 3 style — extend 
`StrutsInternalTestCase` (which extends `XWorkTestCase`, which extends 
`junit.framework.TestCase`), use `protected void setUp()`, and name tests 
`public void testXxx()`. **A JUnit 5 `@Test` annotation compiles and silently 
never runs.** Never add one.
+- **Test style:** `core` tests are JUnit 3 style — `protected void setUp()`, 
tests named `public void testXxx()`, no annotations. **A JUnit 5 `@Test` 
annotation compiles and silently never runs.** Never add one. Extend 
`StrutsInternalTestCase` (which extends `XWorkTestCase`, which extends 
`junit.framework.TestCase`) when the test needs the Struts container or 
`ActionContext`; extend `junit.framework.TestCase` directly for pure 
value-object tests that need neither.
 - **Assertions:** use AssertJ (`import static 
org.assertj.core.api.Assertions.assertThat;`), matching the existing 
`ActionFileUploadInterceptorTest`.
 - **Package:** all new production types go in `org.apache.struts2.interceptor`.
 - **License header:** every new `.java` file starts with the ASF header, 
copied verbatim from 
`core/src/main/java/org/apache/struts2/interceptor/WithLazyParams.java:1-18`.

Reply via email to